Цикл по формуле, которая описывает спираль для генерации координат XY

Я пытаюсь создать спиральную галактику в форме координат xy (2D) - но математика - не моя сильная сторона.

Я почерпнул из превосходного источника по спирали следующее:

Радиус r (t) и угол t пропорциональны самой простой спирали - спирали Архимеда. Следовательно, уравнение имеет вид:

(3) Полярное уравнение: r(t) = at [a является постоянным].
Из этого следует
(2) Форма параметра: x(t) = при cos(t), y(t) = при sin (t),
(1) Центральное уравнение: x²+y² = a²[arc tan (y/x)]².

Этот вопрос как бы касался поколения галактик, но ответы были разбросаны и все еще слишком сложны для того, что мне нужно (иначе мой тупой ум не может их понять).

По сути, мне нужно пройти по спиральной формуле в PHP ~5000 раз, чтобы сгенерировать точки на сетке XY 513x513. Размер сетки и количество необходимых точек могут измениться в будущем. Еще лучше было бы взвесить эти точки к началу спиралей как по частоте, так и по тому, как далеко они могут отклониться от точной математической формулы, подобно тому, как на самом деле выглядит галактика.

Эта математическая статья говорит о формуле, которая описывает структуру спиральных галактик.

То, что полностью теряет меня, - то, как преобразовать математическую формулу к кое-чему, что я могу пройти в PHP!

1 ответ

Решение
// a is 5 here
function x($t){ return 5 * $t * cos($t); }
function y($t){ return 5 * $t * sin($t); }

for ($t = 0; $t < 50; $t += 0.01) {
    $xyPoint = array(x($t), y($t));
    // draw it
}

когда вы сталкиваетесь с такими параметрическими уравнениями, для переменной параметра обычно t, что означает время. Таким образом, вы можете подумать о подключении увеличивающихся значений t к функциям и получении координат, которые постепенно меняются по мере увеличения прошедшего времени.

вам нужно будет выбрать свои собственные значения для a, диапазона t и размера шага приращения t. Это зависит только от ваших требований. и cos(), и sin() имеют максимальное значение 1, если это поможет вам определить подходящие значения для a и t в зависимости от размера холста

Другие вопросы по тегам