我有
的两种不同变体 let diff = nearby.boid.velocity
console.log(diff.p5) //undefined
diff = p5.Vector.div(diff, nearby.d*nearby.d)
steering.add(diff)
第二:
let diff = p5.Vector.sub(this.position, nearby.boid.velocity);
console.log(diff.p5) // an object with the p5-property
console.log('')
diff.div(nearby.d*nearby.d);
steering.add(diff);
我想规范化代码,以便可以将其放入函数中。在第一个示例中,我不能使用diff.div,在第二个示例中,我不能使用p5.vector.div。 p5.vector.sub正在添加p5属性,我可以不做任何减法操作吗?
答案 0 :(得分:0)
对于您要执行的操作,我有些困惑:为什么在函数中需要p5
引用?为什么在第二个示例中不能使用p5.Vector.div()
?您可以发布一个small example来显示您正在尝试做的事情,以及为什么它行不通吗?
请记住,有两个版本的函数:静态和非静态。例如:
p5.Vector.div()
是静态的,具有两个参数,并返回结果而无需修改参数。myVectorInstance.div()
是非静态的。它使用一个参数,并修改myVectorInstances
使其包含结果。如果要创建一个不影响参数的函数,则可能要使用静态版本。
如果您感到好奇,可以查看p5.Vector
here的代码。看起来它在内部使用p5
引用通过p5.toRadians()
和p5.fromRadians()
函数在度和弧度之间进行转换。我不知道为什么p5.Vector
的某些实例填充它,而其他实例没有填充它,但是它似乎是您不应该依赖的实现细节。