如何将P5属性添加到s.Vector对象?

时间:2019-09-08 16:37:29

标签: p5.js

我有

的两种不同变体
  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属性,我可以不做任何减法操作吗?

1 个答案:

答案 0 :(得分:0)

对于您要执行的操作,我有些困惑:为什么在函数中需要p5引用?为什么在第二个示例中不能使用p5.Vector.div()?您可以发布一个small example来显示您正在尝试做的事情,以及为什么它行不通吗?

请记住,有两个版本的函数:静态和非静态。例如:

  • p5.Vector.div()是静态的,具有两个参数,并返回结果而无需修改参数。
  • myVectorInstance.div()是非静态的。它使用一个参数,并修改myVectorInstances使其包含结果。

如果要创建一个不影响参数的函数,则可能要使用静态版本。

如果您感到好奇,可以查看p5.Vector here的代码。看起来它在内部使用p5引用通过p5.toRadians()p5.fromRadians()函数在度和弧度之间进行转换。我不知道为什么p5.Vector的某些实例填充它,而其他实例没有填充它,但是它似乎是您不应该依赖的实现细节。