1
Processingで3軸座標系を描画し、点の座標A(x、y、z)を入力として3軸座標で表示するプログラムを作ってみたいシステムでは、誰でもここから始めることができるコードを私に提供できますか?3軸処理中の座標系3.2.4
Processingで3軸座標系を描画し、点の座標A(x、y、z)を入力として3軸座標で表示するプログラムを作ってみたいシステムでは、誰でもここから始めることができるコードを私に提供できますか?3軸処理中の座標系3.2.4
line()関数を使用して、2組のx、y、z座標(3Dの線の「始点」および「終点」)を渡すと、簡単に軸を描くことができます。
3線を描画し、色で各軸の着色(例えばX、Y、R、G、BとしてZ)を行う必要があります
void drawAxes(float size){
//X - red
stroke(192,0,0);
line(0,0,0,size,0,0);
//Y - green
stroke(0,192,0);
line(0,0,0,0,size,0);
//Z - blue
stroke(0,0,192);
line(0,0,0,0,0,size);
}
複数の座標系を使用する場合、それは読み取り価値2D transformations tutorial。
<iframe width="400" height="400" src="https://alpha.editor.p5js.org/embed/HkQoQTAvl" style="border:none;"></iframe>
PVector a = new PVector(100,50,20);
void setup(){
size(400,400,P3D);
strokeWeight(3);
}
void draw(){
background(255);
//draw original coordinate system
drawAxes(100);
//draw from centre and rotate with mouse
translate(width * 0.5, height * 0.5, 0);
rotateX(map(mouseY,0,height,-PI,PI));
rotateY(map(mouseX,0,width,PI,-PI));
//draw centred coordinate system
drawAxes(100);
//isolate coordinate system for A point
pushMatrix();
translate(a.x,a.y,a.z);
//draw translated A point
drawAxes(50);
popMatrix();
}
void drawAxes(float size){
//X - red
stroke(192,0,0);
line(0,0,0,size,0,0);
//Y - green
stroke(0,192,0);
line(0,0,0,0,size,0);
//Z - blue
stroke(0,0,192);
line(0,0,0,0,0,size);
}
:同じ概念がpushMatrix()/popMatrix()呼び出しを使用して分離し、座標系ネストの観点からだけでなく、3Dに適用されます