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

Processing:Примеры/Преобразование полярных координат в декартовы

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


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

Контакты:

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


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


Описание[1]

Этот скетч-пример конвертирует полярную координату (r,theta) в декартову координату (x,y).

Рассчитывается это следующим образом: x = r*cos(theta), y = r*sin(theta).

Пример

  1. float r;
  2.  
  3. // угол, угловая скорость и ускорение:
  4. float theta;
  5. float theta_vel;
  6. float theta_acc;
  7.  
  8. void setup() {
  9.   size(640, 360);
  10.  
  11.   // инициализируем все значения:
  12.   r = height * 0.45;
  13.   theta = 0;
  14.   theta_vel = 0;
  15.   theta_acc = 0.0001;
  16. }
  17.  
  18. void draw() {
  19.  
  20.   background(0);
  21.  
  22.   // перемещаем начало координат в центр экрана:
  23.   translate(width/2, height/2);
  24.  
  25.   // конвертируем полярную систему координат в декартову:
  26.   float x = r * cos(theta);
  27.   float y = r * sin(theta);
  28.  
  29.   // рисуем эллипс в декартовой системе координат:
  30.   ellipseMode(CENTER);
  31.   noStroke();
  32.   fill(200);
  33.   ellipse(x, y, 32, 32);
  34.  
  35.   // применяем к углу ускорение и угловую скорость
  36.   // (радиус в этом примере остается без изменений):
  37.   theta_vel += theta_acc;
  38.   theta += theta_vel;
  39.  
  40. }

См.также

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

  1. processing.org - PolarToCartesian by Daniel Shiffman