Javascript p5/.js自定义旋转行为问题

Javascript p5/.js自定义旋转行为问题,javascript,processing,p5.js,Javascript,Processing,P5.js,我正在尝试做一个自定义的旋转/磁性行为,使一堆box()正常旋转,如果在一定距离内,它们将停止旋转并对光标产生磁性吸引 我不知道如何修复它,因为现在立方体只能随机旋转 请提供一些线索,谢谢 let cubes=[]; 函数设置(){ createCanvas(窗口宽度、窗口高度、WEBGL); 背景色=颜色(243243243243); //背景(背景色); for(设i=0;i

我正在尝试做一个自定义的旋转/磁性行为,使一堆box()正常旋转,如果在一定距离内,它们将停止旋转并对光标产生磁性吸引

我不知道如何修复它,因为现在立方体只能随机旋转

请提供一些线索,谢谢

let cubes=[];
函数设置(){
createCanvas(窗口宽度、窗口高度、WEBGL);
背景色=颜色(243243243243);
//背景(背景色);
for(设i=0;i<10;i++){
for(设j=0;j<10;j++){
设xPos=map(i,0,9,50,宽度-50);
设yPos=map(j,0,9,50,高度-50);
push(新的多维数据集(xPos,yPos));
}
}
}
函数绘图(){
背景(背景色);
noFill();
for(设a=0;a

您必须在方法
形状
中调用方法
magnetic()
,在
push()
pop()
之间,而不是在绘制框后调用方法
rotateX()
rotateY()

shape(){
推();
中风(这个,中风);
平移(这个.x-宽度/2,这个.y-高度/2,0);
//rotateX(毫秒()/1000);
//旋转度(毫微秒()/1000);
这个
盒子(这个尺寸);
pop();
}
此外,当构建对象时,角度
a
取决于当前鼠标位置,而不是鼠标位置。
在方法
magnetic
中而不是在构造器中计算角度
a

magnetic(){
让距离=距离(mouseX,mouseY,this.x,this.y);
如果(距离<此尺寸*2){
this.a=atan2(mouseY this.y,mouseX this.x);
rotateX(本章第a节);
rotateY(本章第a节);
}否则{
rotateX(毫秒()/1000);
旋转度(毫微秒()/1000);
}
}
请参见示例:

let cubes=[];
函数设置(){
createCanvas(窗口宽度、窗口高度、WEBGL);
背景色=颜色(243243243243);
//背景(背景色);
for(设i=0;i<10;i++){
for(设j=0;j<10;j++){
设xPos=map(i,0,9,50,宽度-50);
设yPos=map(j,0,9,50,高度-50);
push(新的多维数据集(xPos,yPos));
}
}
}
函数绘图(){
背景(背景色);
noFill();
for(设a=0;a

谢谢,它基本上起作用了。但是为什么它的“磁性”效应不能顺利地“吸引”花生酱呢?我已经扩展了答案。