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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Строка 4: Строка 4:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


{{Черновик}}
 


=Описание<ref>[https://processing.org/examples/polartocartesian.html processing.org - PolarToCartesian by Daniel Shiffman]</ref>=
=Описание<ref>[https://processing.org/examples/polartocartesian.html processing.org - PolarToCartesian by Daniel Shiffman]</ref>=
Строка 69: Строка 69:
}}
}}


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
float r;
float r;


Строка 134: Строка 134:
|Высота логотипа издателя для schemaNewsArticle=45
|Высота логотипа издателя для schemaNewsArticle=45
}}
}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Портал/Processing}}
{{Навигационная таблица/Processing/Примеры}}
{{Навигационная таблица/Телепорт}}

Версия от 12:00, 20 мая 2023


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



Описание[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;

}

См.также

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