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)

Vertaalvoorbeeld

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)

rotateX

rotateY(radians(45)); //rotate in the y-axis by passing the radians conversion of 45 degrees

rotateY

rotateZ(3*PI/4); //rotate in the z-axis by 3*PI/4 radians (270 degrees)

rotateZ

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

doos met drie 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

kubus met doosfunctie



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow