2

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();
}
4

1 に答える 1

1

私が正しいことを理解していれば、オブジェクトの中心を原点にも 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();
}
于 2012-10-31T14:39:28.167 に答える