Поиск…


Синтаксис

  • translate (float x, float y, float z)
  • rotateX (поплавок)
  • rotateY (угол поплавка)
  • rotateZ (угол поплавка)
  • box (размер поплавка)
  • box (float w, float h, float d)

параметры

параметры подробности
угол угол в радианах
размер размер окна, который будет использоваться для всех его размеров
вес размер окна по x-axis
час размер окна по y-axis
d размер окна по z-axis

3D-перевод

Вот как перевести объекты в 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)

Пример перевода

Красный: первый прямоугольник Синий: второй прямоугольник

Как видно из приведенного выше эскиза, второй прямоугольник только кажется более крупным, чем первый, когда на самом деле он «ближе» к экрану в результате перевода прямоугольника на 50 пикселей вдоль z-axis (и Конечно, прямоугольник был переведен вдоль осей x и y ).

3D-ротация

Для трехмерного вращения есть три функции: rotateX(angle) , rotateY(angle) и rotateZ(angle) для вращения в соответствующих осей, где angle находится в радианах.

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

Примечание. Преобразования (такие как переводы и вращения) добавляют к предыдущему преобразованию.

Рисование кубоида

Чтобы нарисовать кубоид, вы должны использовать функцию box() , указав ее размеры в качестве параметров.

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

коробка с тремя параметрами

Обратите внимание, что функция box() не принимает свою позицию в качестве параметров

Также есть способ вызвать функцию box() только с одним параметром. В этом случае это будет куб.

stroke(0, 100, 255); //change the edges' colour
fill(0, 0, 255); //fill the `box` in a blue colour
box(100); //draw a cube

куб с функцией коробки



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow