Processing:Примеры/Рука

Материал из Онлайн справочника
Версия от 23:11, 25 июля 2018; Myagkij (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску


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


Черновик


Описание[1]

Угол первого сегмента (плеча) управляется при помощи позиции mouseX, а второго (предплечья) – при помощи позиции mouseY. Трансформации, применяемые к первому сегменту, также применяются ко второму сегменту, т.к. они находятся в одной координатной системе (матрице преобразований), созданной с помощью методов pushMatrix() и popMatrix().

Пример

float x, y;
float angle1 = 0.0;
float angle2 = 0.0;
float segLength = 100;

void setup() {
  size(640, 360);
  strokeWeight(30);
  stroke(255, 160);
  
  x = width * 0.3;
  y = height * 0.5;
}

void draw() {
  background(0);
  
  angle1 = (mouseX/float(width) - 0.5) * -PI;
  angle2 = (mouseY/float(height) - 0.5) * PI;
  
  pushMatrix();
  segment(x, y, angle1); 
  segment(segLength, 0, angle2);
  popMatrix();
}

void segment(float x, float y, float a) {
  translate(x, y);
  rotate(a);
  line(0, 0, segLength, 0);
}

См.также

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