processingで原子のモデルを動かしたい 立体の重なり方がおかしい
7262 ワード
↑
こんな感じのを電子を動かして見せたいなと思った。
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);
}
電子が後ろに回ったときに、なぜか消えている。
原子の部分は赤色で透明度を設定しているのにおかしい。
http://tercel-sakuragaoka.blogspot.com/2011/11/p3d.html
調べてみると上のサイトに
processing : P3D モードのヘンなクセ
ということで記述されていた。 P3Dだと仕方ないことらしい
setup()の部分に
hint(ENABLE_DEPTH_SORT); // ←追加
を追加するといいらしい
描画方式をデフォルトのZ バッファリングから画家のアルゴリズムに変更する ことができているらしい
うまくいった。
Author And Source
この問題について(processingで原子のモデルを動かしたい 立体の重なり方がおかしい), 我々は、より多くの情報をここで見つけました https://qiita.com/hyoutann/items/f018705e4cfab4e4f459著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .