p5.js 处理向量数组
p5.js to processing vector array
我相信这很简单,但我不知道该怎么做。
如何在代码的第一行将矢量数组作为参数从处理转换为 p5.js。
非常感谢大卫
int inPolyCheck(PVector v, PVector [] p) {
float a = 0;
for (int i =0; i<p.length-1; ++i) {
PVector v1 = p[i].get();
PVector v2 = p[i+1].get();
a += vAtan2cent180(v, v1, v2);
}
PVector v1 = p[p.length-1].get();
PVector v2 = p[0].get();
a += vAtan2cent180(v, v1, v2);
if (abs(abs(a) - TWO_PI) < 0.01) return 1;
else return 0;
}
float vAtan2cent180(PVector cent, PVector v2, PVector v1) {
PVector vA = v1.get();
PVector vB = v2.get();
vA.sub(cent);
vB.sub(cent);
vB.mult(-1);
float ang = atan2(vB.x, vB.y) - atan2(vA.x, vA.y);
if (ang < 0) ang = TWO_PI + ang;
ang-=PI;
return ang;
}
Java脚本是动态类型,不像Java是静态类型。
这对你意味着什么?
这意味着您不必担心声明变量的数据类型(在本例中为参数)。变量的数据类型根据存储在其中的数据类型自动配置。我认为这些信息足以让您弄清楚您需要做什么,如果没有,那么我建议您先学习 Javascript,然后再学习如何在 Javascript 中复制处理代码。
我相信这很简单,但我不知道该怎么做。 如何在代码的第一行将矢量数组作为参数从处理转换为 p5.js。 非常感谢大卫
int inPolyCheck(PVector v, PVector [] p) {
float a = 0;
for (int i =0; i<p.length-1; ++i) {
PVector v1 = p[i].get();
PVector v2 = p[i+1].get();
a += vAtan2cent180(v, v1, v2);
}
PVector v1 = p[p.length-1].get();
PVector v2 = p[0].get();
a += vAtan2cent180(v, v1, v2);
if (abs(abs(a) - TWO_PI) < 0.01) return 1;
else return 0;
}
float vAtan2cent180(PVector cent, PVector v2, PVector v1) {
PVector vA = v1.get();
PVector vB = v2.get();
vA.sub(cent);
vB.sub(cent);
vB.mult(-1);
float ang = atan2(vB.x, vB.y) - atan2(vA.x, vA.y);
if (ang < 0) ang = TWO_PI + ang;
ang-=PI;
return ang;
}
Java脚本是动态类型,不像Java是静态类型。
这对你意味着什么?
这意味着您不必担心声明变量的数据类型(在本例中为参数)。变量的数据类型根据存储在其中的数据类型自动配置。我认为这些信息足以让您弄清楚您需要做什么,如果没有,那么我建议您先学习 Javascript,然后再学习如何在 Javascript 中复制处理代码。