Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Processing:Примеры/Вращающийся прямоугольник

Материал из Онлайн справочника
Перейти к: навигация, поиск


Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Описание[1]

Это скетч-пример, демонстрирующий использование библиотеки extruder для создания вращающегося 3D-прямоугольника.

Пример

  1. // импортируем библиотеку «extruder»:
  2. import extruder.*;
  3.  
  4. // переменная для счетчика кадров:
  5. int f = 0;
  6.  
  7. // объект extruder:
  8. extruder e;
  9.  
  10. // квадратная фигура:
  11. PShape square;
  12.  
  13. // массив объектов PShape для создания прямоугольника:
  14. PShape[] tbox;
  15.  
  16. // настраиваем сцену:
  17. void setup() {
  18.   // задаем размер изображения на 600х600:
  19.   size(800, 800, P3D);
  20.   // делаем линии черными:
  21.   stroke(0);
  22.   // делаем цвет заполнения белым:
  23.   fill(255);
  24.   // создаем экземпляр класса «extruder»:
  25.   e = new extruder(this);
  26.   // создаем возле центра изображения квадрат размером 200х200:
  27.   square = createShape(RECT, -100, -100, 200, 200);
  28.   // экструдируем квадрат по оси Z на 100,
  29.   // добавляя ему прямоугольные стороны;
  30.   // «box» в параметрах extruder() значит,
  31.   // что экструдируемые объекты будут прямоугольниками,
  32.   // соединяющими все точки друг с другом;
  33.   // функция extrude() возвращает 3 объекта:
  34.   // верхнюю плоскость, стороны и нижнюю плоскость
  35.   tbox = e.extrude(
  36.     square,
  37.     100,
  38.     "box"
  39.   );
  40. }
  41.  
  42. // рисуем сцену:
  43. void draw(){
  44.   // делаем фон сцены черным:
  45.   background(0);
  46.   // делаем начальными координатами сцены центр изображения:
  47.   translate(width/2, height/2, 0);
  48.   // задаем вращение со скоростью 3 градуса в кадр по оси Y:
  49.   rotateY(radians(f*3));
  50.   // рисуем все фигуры PShape, которые вернула функция extruder():
  51.   for (PShape p: tbox){
  52.     shape(p);
  53.   }
  54.   // инкрементируем счетчик кадров:
  55.   f++;
  56. }

См.также

Внешние ссылки

  1. maxlfarrell.gitlab.io - rotating_rect