【发布时间】:2014-11-12 06:04:04
【问题描述】:
我了解如何渲染(二维)“逃逸时间组”分形(Julia 和 Mandelbrot),但我似乎无法渲染莫比乌斯变换或牛顿盆地。
我正在尝试使用相同的方法来渲染它们(通过在每个像素“n”次上递归使用多项式方程),但我感觉这些分形是使用完全不同的方法渲染的。莫比乌斯“变换”意味着图像必须已经存在,然后被变换以产生几何图形,牛顿盆地似乎绘制了每个点,而不仅仅是落入集合的点。
这些分形是如何绘制的?它们是否使用与 Julia 和 Mandelbrot 相同的迭代方法绘制图形?
我正在使用的方程式:
Julia: Zn+1 = Zn^2 + C
其中 Z 是表示像素的复数,C 是复数常数(正确)。
Mandelbrot: Cn+1 = Cn^2 + Z
其中 Z 是表示像素的复数,C 是复数 (0, 0),每一步都复合(Julia 的反面,正确)。
Newton Basin: Zn+1 = Zn - (Zn^x - a) / (Zn^y - a)
其中 Z 是表示像素的复数,x 和 y 是不同度数的指数,a 是复数常数(不正确 - 创建一个居中的八足“线星”)。
Mobius Transformation: Zn+1 = (aZn + b) / (cZn + d)
其中 Z 是表示像素的复数,a、b、c 和 d 是复数常数(不正确,一切都在集合中)。
那么牛顿盆地和莫比乌斯变换是如何绘制在复平面上的呢?
更新:莫比乌斯变换就是这样;转变。
"Every Möbius transformation is
a composition of translations,
rotations, zooms (dilations) and
inversions."
要执行 Mobius 变换,形状、图片、涂抹等必须已经存在才能对其进行变换。
现在牛顿盆地怎么样?
更新 2:我对牛顿盆地的数学计算是错误的。等式末尾的分母是(假设是)原函数的导数。该功能可以通过研究 MIT MatLab 源代码中的“NewtonRoot.m”来理解。搜索引擎可以很容易地找到它。不过,我仍然不知道如何在复平面上绘制它......
牛顿盆地:
f(x) = x - f(x) / f'(x)
【问题讨论】:
标签: graphics geometry fractals