Javascript 在画布中围绕着另一个圆旋转的方向上移动圆
当按下一个按钮时,我有一个问题,就是把大圆移向小圆的方向。有人能帮忙吗 目标:Javascript 在画布中围绕着另一个圆旋转的方向上移动圆,javascript,animation,dom,canvas,p5.js,Javascript,Animation,Dom,Canvas,P5.js,当按下一个按钮时,我有一个问题,就是把大圆移向小圆的方向。有人能帮忙吗 目标: 在画布上画一个圆圈[完成] 画一个围绕大圆旋转的小圆[完成] 当按下按钮时,将大圆移动5个像素,此时指向小圆的方向[待定] 移动[挂起]时添加图形效果 我们可以在按下按钮的点使用下面的x和y坐标,并沿该方向移动主圆吗?如果我错了,请纠正我 let x = r *2* cos(angle); let y = r *2* sin(angle); let angle=0; 函数设置(){ createCanvas(
let x = r *2* cos(angle);
let y = r *2* sin(angle);
let angle=0;
函数设置(){
createCanvas(400400);
}
函数绘图(){
背景(0);
中风(255);
冲程重量(4);
设cir=createVector(200200);
设速度=createVector();
设r=10;
k=圆(cir.x,cir.y,r*2);
冲程重量(4);
中风(255);
设x=r*2*cos(角);
设y=r*2*sin(角度);
翻译(200200);
点(x,y);
角度+=0.01;
如果(按下鼠标){
k、 x+=x;
k、 y+=y;
}
}
您可以沿着小圆的方向移动大圆,同时通过跟踪大圆的中心,使小圆围绕大圆旋转 将变量
cir
移到绘图之外,以便我们保留对其所做的任何更改
我们还需要计算从大圆和小圆的中心沿线段的5px移动。要做到这一点,我们可以在这个解决方案中使用公式
为了防止小圆在移动过程中旋转,我们只能在鼠标未落下时增加旋转角度
let angle=0;
让cir;
函数设置(){
createCanvas(400400);
cir=createVector(200200);
}
函数绘图(){
背景(0);
中风(255);
冲程重量(4);
设r=10;
圆(cir.x,cir.y,r*2);
冲程重量(4);
中风(255);
设x=r*2*cos(角);
设y=r*2*sin(角度);
点(x+cir.x,y+cir.y);
如果(按下鼠标){
cir.x=(1-0.025)*cir.x+0.025*(x+cir.x);
cir.y=(1-0.025)*cir.y+0.025*(y+cir.y);
}否则{
角度+=0.01;
}
}
非常感谢您。你能解释这一行吗?cir.x=(1-0.025)*cir.x+0.025*(x+cir.x)
以及您获取这些值的原因。是否可以在移动时停止小圆的旋转,并在停止后继续?是的,请参阅我修改的代码。为了停止旋转,我们只需跳过增加角度。cir.x=(1-0.025)*cir.x+0.025*(x+cir.x);通过将大圆中心点和小圆位置插入到用于在线段上查找点的公式中,计算大圆的新x位置。有关更多详细信息,请参阅链接。谢谢,快速提问,我们如何为其添加加速功能?。我试着补充说,它正在加速,但并没有改变它的方向。当我仅仅增加0.025的值时,它是工作的,但是我需要稳定地增加它的速度。你能帮忙吗