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

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


Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Cat poo.png Черновик


Описание[1]

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

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

Пример

float r;

// угол, угловая скорость и ускорение:
float theta;
float theta_vel;
float theta_acc;

void setup() {
  size(640, 360);
  
  // инициализируем все значения:
  r = height * 0.45;
  theta = 0;
  theta_vel = 0;
  theta_acc = 0.0001;
}

void draw() {
  
  background(0);
  
  // перемещаем начало координат в центр экрана:
  translate(width/2, height/2);
  
  // конвертируем полярную систему координат в декартову:
  float x = r * cos(theta);
  float y = r * sin(theta);
  
  // рисуем эллипс в декартовой системе координат:
  ellipseMode(CENTER);
  noStroke();
  fill(200);
  ellipse(x, y, 32, 32);
  
  // применяем к углу ускорение и угловую скорость
  // (радиус в этом примере остается без изменений):
  theta_vel += theta_acc;
  theta += theta_vel;

}

См.также

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