Цикл по формуле, которая описывает спираль для генерации координат 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 в зависимости от размера холста