2012-10-27 4 views
2

X 축을 통해 중심을 중심으로 3면 오브젝트를 회전하려고합니다. 나는 0,0에서 한 얼굴의 중심을 짓고있다. 그리고 중심 주위로 회전시킬 수 있지만 "전체"객체를 회전하려고하면 더 이상 작동하지 않습니다. 어떻게해야합니까? 내가 올바른 이해하면Processing 내에서 중심을 중심으로 한 3D 오브젝트 회전

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

답변

2

, 당신은이 경우 당신이 원하는 것을 참조, 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(); 
} 
관련 문제