processing
Forme e funzioni di base che utilizzano P3D
Ricerca…
Sintassi
- translate (float x, float y, float z)
- rotateX (angolo di galleggiamento)
- rotateY (angolo di galleggiamento)
- rotateZ (angolo di galleggiamento)
- scatola (dimensione del galleggiante)
- scatola (float w, float h, float d)
Parametri
parametri | Dettagli |
---|---|
angolo | l'angolo è in radianti |
taglia | la dimensione della scatola da utilizzare per tutte le sue dimensioni |
w | la dimensione della scatola nell'asse x-axis |
h | la dimensione della scatola nell'asse y-axis |
d | la dimensione della scatola nell'asse z-axis |
Traduzione 3D
Ecco come tradurre gli oggetti in 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)
Rosso: primo rettangolo Blu: secondo rettangolo
Come si può vedere dallo schizzo sopra, il secondo rettangolo sembra essere più grande del primo, quando in realtà è "più vicino" allo schermo come risultato della traslazione del rettangolo di 50
pixel lungo l' z-axis
(e di Naturalmente, il rettangolo è stato tradotto lungo il x
ed y
assi).
Rotazione 3D
Ci sono tre funzioni per la rotazione 3D: ruotare rotateX(angle)
, rotateY(angle)
e rotateZ(angle)
per la rotazione nei rispettivi assi dove l' angle
è in radianti.
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)
Nota: le trasformazioni (come le traduzioni e le rotazioni) si aggiungono alla trasformazione precedente.
Disegnare un cuboide
Per disegnare un parallelepipedo, devi usare la funzione box()
dando le sue dimensioni come parametri.
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
Si noti che la funzione
box()
non accetta la sua posizione come parametri
C'è anche un modo per chiamare la funzione box()
con un solo parametro. In questo caso, sarà un cubo.
stroke(0, 100, 255); //change the edges' colour
fill(0, 0, 255); //fill the `box` in a blue colour
box(100); //draw a cube