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)

Översättningsexempel

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)

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

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

ruta med tre parametrar

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

kub med boxfunktion



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow