在我的程序中,我想要一个球体来代表一个地球仪。我希望用户按下鼠标1按钮并旋转球体。当用户没有按下鼠标1时,无论鼠标如何移动,球体都应保持静止。简单来说,我希望只有在按下鼠标时才能旋转球体。这是我旋转球体的代码。
float lockXRotation;
float lockYRotation;
void setup() {
size(1000,700,P3D); //reference
}
void draw() {
mouseAction();
fill(200, 0, 160);
if(mousePressed == false){
rotateX(lockXRotation);
rotateY(lockYRotation);
}
sphere(100);
}
void mouseAction () {
translate(500, 350, 0); //reference starts here'
if(mousePressed){
rotateX(mouseY * -0.01);
rotateY(mouseX * -0.01); //ends here
lockXRotation = 0;//what should i put so it will stay still?
lockYRotation = 0;
}
}
我已经尝试过用于lockXRotation的mouseX * -0.01但是它偏移了x到原点的距离。是否有一个函数来查找对象所在的旋转?
答案 0 :(得分:0)
好的,所以你想要在用户按下鼠标时锁定球体的位置。
我看了你的代码并在Processing上运行它,我相信你的lockXRotation
没有按照它想要的那样做。
如果您查看第12 - 15行,其中显示的是if (mousePressed == false)
,那么它应该rotateX(lockXRotation)
,这些行不属于绘制功能,但如果您将它们放入mouseAction
函数,可以解决问题。