【发布时间】:2018-10-22 20:20:09
【问题描述】:
我正在尝试将 10000 个粒子放置在心形中。 粒子是圆形,在窗格中具有 x 和 y 位置。
for (p in ps) {
val index = ps.indexOf(p).toDouble()
var x = 16 * Math.pow(Math.sin(index * angle.toDouble()), 3.0)
//var y = Math.sqrt(Math.cos(index)) * Math.cos(400 * index) + Math.sqrt(Math.abs(index) - 0.4) * Math.pow((4 - index * index), 0.1)
var y = (13 * Math.cos(index * angle.toDouble()))
-(5 * Math.cos(2 * index * angle.toDouble()))
-(2 * Math.cos(3 * index * angle.toDouble()))
-(Math.cos(4 * index * angle.toDouble()))
p.layoutX = startX + x
p.layoutY = startY + y
}
p = 粒子
ps = 粒子(列表)
我不知道我在方程式实现中做错了什么。 我还尝试在 cos 中使用 Math.toRadians,sin,因为我读到他们需要这样做。
【问题讨论】:
-
你应该使用
ps.withIndex().forEach { (p, index) ->而不是for (p in ps) { val index = ...