processing
Grundläggande former och funktioner med P3D
Sök…
Syntax
- översätta (float x, float y, float z)
- rotateX (floatvinkel)
- roteraY (flyta vinkel)
- roteraZ (flottörvinkel)
- låda (flottörstorlek)
- box (float w, float h, float d)
parametrar
parametrar | detaljer |
---|---|
vinkel | vinkeln är i radianer |
storlek | dimensionen på rutan som ska användas för alla dess dimensioner |
w | dimensionen på rutan i x-axis |
h | dimensionen på rutan i y-axis |
d | dimensionen på rutan i z-axis |
3D-översättning
Så här översätter du objekt i 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)
Röd: första rektangel Blå: andra rektangel
Som framgår av ovanstående skiss verkar den andra rektangeln bara vara större än den första, när den i verkligheten är "närmare" skärmen som ett resultat av att översätta rektangeln 50
pixlar längs z-axis
(och av rektangeln har naturligtvis översatts längs x
och y
axlarna).
3D-rotation
Det finns tre funktioner för 3D-rotation: rotateX(angle)
, rotateY(angle)
och rotateZ(angle)
för rotation i deras respektive axlar där angle
är i radianer.
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)
Obs: transformationer (t.ex. översättningar och rotationer) lägger till den tidigare transformationen.
Rita en cuboid
För att rita en cuboid måste du använda box()
-funktionen genom att ange dess dimensioner som dess parametrar.
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
Observera att
box()
-funktionen inte accepterar sin position som parametrar
Det finns också ett sätt att ringa box()
-funktionen med bara en parameter. I det här fallet kommer det att vara en kub.
stroke(0, 100, 255); //change the edges' colour
fill(0, 0, 255); //fill the `box` in a blue colour
box(100); //draw a cube