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

Processing:Примеры/Арктангенс

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


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

Контакты:

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


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


Описание[1]

Перемещайте курсор мыши, чтобы изменить направление, в котором смотрят «глаза».

В скетче-примере ниже функция atan2() рассчитывает направление «зрачка», смотрящего на курсор.

Пример

  1. Eye e1, e2, e3;
  2.  
  3. void setup() {
  4.   size(640, 360);
  5.   noStroke();
  6.   e1 = new Eye( 250,  16, 120);
  7.   e2 = new Eye( 164, 185,  80);  
  8.   e3 = new Eye( 420, 230, 220);
  9. }
  10.  
  11. void draw() {
  12.   background(102);
  13.  
  14.   e1.update(mouseX, mouseY);
  15.   e2.update(mouseX, mouseY);
  16.   e3.update(mouseX, mouseY);
  17.  
  18.   e1.display();
  19.   e2.display();
  20.   e3.display();
  21. }
  22.  
  23. class Eye {
  24.   int x, y;
  25.   int size;
  26.   float angle = 0.0;
  27.  
  28.   Eye(int tx, int ty, int ts) {
  29.     x = tx;
  30.     y = ty;
  31.     size = ts;
  32.  }
  33.  
  34.   void update(int mx, int my) {
  35.     angle = atan2(my-y, mx-x);
  36.   }
  37.  
  38.   void display() {
  39.     pushMatrix();
  40.     translate(x, y);
  41.     fill(255);
  42.     ellipse(0, 0, size, size);
  43.     rotate(angle);
  44.     fill(153, 204, 0);
  45.     ellipse(size/4, 0, size/2, size/2);
  46.     popMatrix();
  47.   }
  48. }

См.также

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

  1. processing.org - Arctangent