我正在尝试以 xy (2D) 坐标的形式生成一个螺旋星系——但数学不是我的强项。
我从一个关于螺旋的优秀来源收集了以下内容:
对于最简单的螺旋,即阿基米德螺旋,半径 r(t) 和角度 t 成正比。因此等式是:
(3) 极坐标方程:r(t) = at [a 为常数]。
由此得出
(2) 参数形式:x(t) = at cos(t), y(t) = at sin(t),
(1) 中心方程:x²+y² = a²[arc tan (y/x) ]²。
这个问题有点涉及星系的生成,但是对于我需要的东西来说,答案是分散的并且仍然过于复杂(又名,我的数学愚蠢的头脑无法理解它们)。
本质上,我需要做的是在 PHP 中循环一个螺旋公式 ~5000 次,以在 513x513 XY 网格上生成点。网格的大小和所需的点数将来可能会发生变化。更好的办法是将这些点与螺旋的起源进行权衡,包括频率以及它们偏离精确数学公式的距离,类似于星系的实际外观。
这篇数学论文讨论了一个描述螺旋星系结构的公式。
让我完全迷失的是如何将数学公式转换为我可以在 PHP 中循环的东西!