我正在尝试通过X轴围绕它的中心旋转三面物体。我在0,0处构建单面的中心。我可以围绕它的中心旋转它,但是当我尝试旋转“整个”对象时,它不再起作用了。我该怎么办?
float a = 0;
void setup() {
size(400, 400, P3D);
}
void draw() {
background(0);
noStroke();
lights();
pushMatrix();
translate(width/2, height/2, -100);
a = a + 0.01;
rotateX(a);
beginShape(QUADS);
vertex(-100, -100, 0);
vertex(100, -100, 0);
vertex(100, 100, 0);
vertex(-100, 100, 0);
vertex(-100, 100, 0);
vertex(100, 100, 0);
vertex(100, 0, - 170);
vertex(-100, 0, - 170);
vertex(-100, - 100, 0);
vertex(100, - 100, 0);
vertex(100, 0, - 170);
vertex(-100, 0, - 170);
endShape();
popMatrix();
}
如果我理解正确,你需要在原点绘制物体的中心也在z轴上,看看这是不是你想要的:
(仅每个顶点的z参数发生变化)
float a = 0;
void setup() {
size(400, 400, P3D);
}
void draw() {
background(0);
noStroke();
lights();
pushMatrix();
translate(width/2, height/2, -100);
a = a + 0.01;
rotateX(a);
beginShape(QUADS);
vertex(-100, -100, 85);
vertex(100, -100, 85);
vertex(100, 100, 85);
vertex(-100, 100, 85);
vertex(-100, 100, 85);
vertex(100, 100, 85);
vertex(100, 0, - 85);
vertex(-100, 0, - 85);
vertex(-100, - 100, 85);
vertex(100, - 100, 85);
vertex(100, 0, - 85);
vertex(-100, 0, - 85);
endShape();
popMatrix();
}