【问题标题】:Processing: How to make Sphere that rotates when mouseClicked?处理:如何使鼠标单击时旋转的球体?
【发布时间】:2018-06-09 00:45:50
【问题描述】:

在我的程序中,我想要一个球体来代表一个地球。我希望用户按下 mouse1 按钮并旋转球体。当用户没有按下 mouse1 时,无论鼠标如何移动,球体都应该保持静止。简单来说,我希望球体仅在按下鼠标时旋转。这是我的球体旋转代码。

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 到原点的距离。有没有一个函数可以找到物体所处的旋转?

【问题讨论】:

    标签: java rotation processing


    【解决方案1】:

    好的,所以您希望在用户按下鼠标时锁定球体的位置。

    我查看了您的代码并在 Processing 上运行了它,我相信您的 lockXRotation 没有做它应该做的事情。

    如果你看一下第 12 到 15 行,上面写着if (mousePressed == false),那么它应该是rotateX(lockXRotation),这些行不属于绘图函数,但如果你把它们放在mouseAction 函数中,那或许能解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-04
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多