processing
Основные формы и функции с использованием P3D
Поиск…
Синтаксис
- 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)
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)
Примечание. Преобразования (такие как переводы и вращения) добавляют к предыдущему преобразованию.
Рисование кубоида
Чтобы нарисовать кубоид, вы должны использовать функцию 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