processing
P3Dを使用した基本的な形状と機能
サーチ…
構文
- translate(float x、float y、float z)
- rotateX(浮き角)
- rotateY(浮動角度)
- rotateZ(浮動角度)
- ボックス(フロートサイズ)
- ボックス(float w、float h、float d)
パラメーター
パラメーター | 詳細 |
---|---|
角度 | 角度はラジアン単位です |
サイズ | すべての次元で使用されるボックスの寸法 |
w | ボックスのx-axis の寸法 |
h | ボックスのy-axis の寸法 |
d | ボックスのz-axis の寸法 |
3D翻訳
P3Dのオブジェクトを翻訳する方法は次のとおりです。
size(200, 200, P3D); //Starting P3D renderer
fill(255, 0, 0, 150); //transparent red
rect(10, 10, 100, 100); //first rectangle
fill(0, 0, 255, 150); //transparent blue
translate(50, 50, 50); //translate x, y and z by 50 pixels
rect(0, 0, 100, 100); //second rectangle (same dimensions as the first one)
赤:最初の矩形青:2番目の矩形
上のスケッチから分かるように、2番目の矩形は最初の矩形よりも大きく見えます。実際には、矩形をz-axis
沿って50
ピクセル平行移動した結果、画面に「近い」もちろん、長方形はx
軸とy
軸に沿って翻訳されています)。
3D回転
3D回転には3つの機能があります: angle
がラジアンであるそれぞれの軸でのrotateX(angle)
、 rotateY(angle)
およびrotateZ(angle)
です。
size(200, 200, P3D); //Starting P3D renderer
fill(255, 0, 0, 150); //transparent red
translate(width/2, height/2);//translate to centre, ie (100, 100)
rectMode(CENTER);//This makes the rectangle centre in (100, 100)
rect(0, 0, 100, 100); //first rectangle
fill(0, 0, 255, 150); //transparent blue
rotateX(PI/4); //rotate in the x-axis by PI/4 radians (45 degrees)
rect(0, 0, 100, 100); //second rectangle (same dimensions as the first one)
rotateY(radians(45)); //rotate in the y-axis by passing the radians conversion of 45 degrees
rotateZ(3*PI/4); //rotate in the z-axis by 3*PI/4 radians (270 degrees)
注:変換(変換や回転など)は、前の変換に追加されます。
直方体を描く
直方体を描画するには、 box()
関数の寸法をパラメータとして指定する必要があります。
size(200, 200, P3D); //Starting the P3D renderer
translate(width/2, height/2); //Translating to the centre of the sketch
rotateY(PI/4); //rotate so that...
rotateX(PI/6); //... it will be easy to see the box
noFill(); //disabling the box's fill, so that we will be able to see its edges
box(100, 50, 75); //the box function requires its dimensions as its parameters
box()
関数は、その位置をパラメータとして受け入れないことに注意してください
また、1つのパラメータでbox()
関数を呼び出す方法もあります。この場合、それは立方体になります。
stroke(0, 100, 255); //change the edges' colour
fill(0, 0, 255); //fill the `box` in a blue colour
box(100); //draw a cube
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow