processing으로 원자의 모델을 움직이고 싶다 입체의 겹치는 방법이 이상하다




이런 느낌을 전자를 움직여 보여주고 싶다고 생각했다.

float t =0;
void setup() {
size(500,500,P3D);
noStroke();
lights();
}

void draw() {
  fill(255,50);
  rect(0,0,width,height);//backgroundではなく不透明のrectでリフレッシュすることで残像をつける
  fill(153);
translate(width/2,height/2,0);
sphere(25);//原子核
fill(255,0,0,10);//k殻原子領域の色
sphere(100);//原子領域を示す透明

fill(0,255,0,10);//l殻の領域の色
//sphere(150);


fill(0,0,255,255);//電子を示す色



pushMatrix();//電子の回転用

pushMatrix();
rotateZ(t+5);//z軸で回す
translate(100,0,0);//z軸で回す
sphere(10);//電子
popMatrix();

pushMatrix();
rotateX(t+4);//x軸で回す
translate(0,0,100);//x軸で回す
sphere(10);//電子
popMatrix();

pushMatrix();
rotateY(t+2);//y軸で回す
translate(100,0,0);
sphere(10);//電子
popMatrix();



pushMatrix();
rotateX(TWO_PI/8);
rotateY(t);//斜め軸で回す
translate(100,0,0);
sphere(10);//電子
popMatrix();


popMatrix();//電子の回転終わり




  t=t+TWO_PI/(60*3);
}

이제 실행해 보면


전자가 뒤에 돌 때, 왠지 사라진다.
원자의 부분은 적색으로 투명도를 설정하고 있는데 이상하다.

h tp : // / r r- 사쿠라가 오카. bgs포 t. m/2011/11/p3d. HTML
조사해 보면 위 사이트에
processing : P3D 모드의 긴장감
라고 하는 것으로 기술되고 있었다. P3D라면 어쩔 수 없는 것 같다

setup() 부분에
  hint(ENABLE_DEPTH_SORT); // ←追加 

추가하는 것이 좋습니다.

드로잉 방식을 기본 Z 버퍼링에서 화가 알고리즘으로 변경할 수있는 것 같습니다.

그렇다면


잘 갔다.

좋은 웹페이지 즐겨찾기