处理:如何使鼠标点击时旋转的球体?

时间:2018-03-06 23:55:46

标签: java rotation processing

在我的程序中,我想要一个球体来代表一个地球仪。我希望用户按下鼠标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到原点的距离。是否有一个函数来查找对象所在的旋转?

1 个答案:

答案 0 :(得分:0)

好的,所以你想要在用户按下鼠标时锁定球体的位置。

我看了你的代码并在Processing上运行它,我相信你的lockXRotation没有按照它想要的那样做。

如果您查看第12 - 15行,其中显示的是if (mousePressed == false),那么它应该rotateX(lockXRotation),这些行不属于绘制功能,但如果您将它们放入mouseAction函数,可以解决问题。