processing
Basisvormen en functies met P3D
Zoeken…
Syntaxis
- vertalen (zweven x, zweven y, zweven z)
- rotateX (zweefhoek)
- rotateY (zweefhoek)
- rotateZ (zweefhoek)
- doos (vlottermaat)
- vak (float w, float h, float d)
parameters
parameters | Details |
---|---|
hoek | de hoek is in radialen |
grootte | de afmeting van de doos die moet worden gebruikt voor al zijn afmetingen |
w | de afmeting van het vak op de x-axis |
h | de afmeting van het vak op de y-axis |
d | de afmeting van het vak op de z-axis |
3D-vertaling
U kunt als volgt objecten vertalen 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)
Rood: eerste rechthoek Blauw: tweede rechthoek
Zoals te zien is in de bovenstaande schets, lijkt de tweede rechthoek alleen groter te zijn dan de eerste, terwijl deze in werkelijkheid "dichter" bij het scherm is als gevolg van het vertalen van de rechthoek 50
pixels langs de z-axis
(en van natuurlijk is de rechthoek vertaald langs de x
en y
as).
3D-rotatie
Er zijn drie functies voor 3D-rotatie: rotateX(angle)
, rotateY(angle)
en rotateZ(angle)
voor rotatie in hun respectieve assen waar de angle
in radialen is.
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)
Opmerking: transformaties (zoals vertalingen en rotaties) worden toegevoegd aan de vorige transformatie.
Een kubus tekenen
Als u een kubus wilt tekenen, moet u de functie box()
door de afmetingen ervan als parameters op te geven.
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
Merk op dat de
box()
functie zijn positie niet accepteert als de parameters
Er is ook een manier om de box()
-functie aan te roepen met slechts één parameter. In dit geval zal het een kubus zijn.
stroke(0, 100, 255); //change the edges' colour
fill(0, 0, 255); //fill the `box` in a blue colour
box(100); //draw a cube