Graphics 呈现分形:莫比乌斯变换和牛顿盆地

Graphics 呈现分形:莫比乌斯变换和牛顿盆地,graphics,geometry,fractals,Graphics,Geometry,Fractals,我知道如何渲染(二维)“逃逸时间组”分形(Julia和Mandelbrot),但我似乎无法渲染Mobius变换或牛顿盆地 我尝试使用相同的方法来渲染它们(通过递归地在每个像素上使用多项式方程n次),但我感觉这些分形是使用完全不同的方法渲染的。莫比乌斯的“变换”意味着图像必须已经存在,然后变换生成几何体,而牛顿盆地似乎绘制了每个点,而不仅仅是属于一组的点 这些分形图是如何绘制的?它们是否使用与Julia和Mandelbrot相同的迭代方法绘制 我使用的方程式: Julia: Zn+1 = Zn^2

我知道如何渲染(二维)“逃逸时间组”分形(Julia和Mandelbrot),但我似乎无法渲染Mobius变换或牛顿盆地

我尝试使用相同的方法来渲染它们(通过递归地在每个像素上使用多项式方程n次),但我感觉这些分形是使用完全不同的方法渲染的。莫比乌斯的“变换”意味着图像必须已经存在,然后变换生成几何体,而牛顿盆地似乎绘制了每个点,而不仅仅是属于一组的点

这些分形图是如何绘制的?它们是否使用与Julia和Mandelbrot相同的迭代方法绘制

我使用的方程式:

Julia: Zn+1 = Zn^2 + C
其中Z是表示像素的复数,C是复数常量(正确)

其中Z是表示像素的复数,C是复数(0,0),每一步都是复合的(Julia的倒数,正确)

其中Z是表示像素的复数,x和y是不同度数的指数,a是复常数(不正确-创建一个居中的、八条腿的“线星”)

其中Z是表示像素的复数,a、b、c和d是复数常量(不正确,所有内容都在集合中)

那么牛顿盆地和莫比乌斯变换是如何在复平面上绘制的呢

更新:Mobius变换就是这样;转变

"Every Möbius transformation is
a composition of translations,
rotations, zooms (dilations) and
inversions."
要执行Mobius变换,必须已经存在形状、图片、涂抹等,才能对其进行变换

那么牛顿盆地呢

更新2:我对牛顿盆地的计算是错误的。方程末尾的分母是(应该是)原始函数的导数。通过学习麻省理工学院MatLab源代码中的“NewtonRoot.m”可以理解该函数。搜索引擎可以很容易地找到它。我仍然不知道如何在复杂的平面上绘制它,尽管

牛顿盆地:

f(x) = x - f(x) / f'(x)

在Mandelbrot和Julia集合中,如果内环超过某个阈值,则终止内环,以测量轨道“到达”无穷大的速度

对于牛顿分形,情况正好相反:由于牛顿法通常会收敛到某一特定值,我们感兴趣的是它达到极限的速度有多快,这可以通过检查两个连续值的差值是否低于某一特定值(通常10^-9是一个好值)来实现

if(| z[n]-z[n-1]|
…每个像素都是通过用像素的矢量分量创建一个新的复数来计算的,就像Mandelbrot?换句话说,在复平面上,像素对像素的渲染方式是否相同?@mrnous2502是的,没错。所以它实际上只是一个不同的公式,一个不同的边界条件和着色条件,你可以使用最后一个角度。
Mobius Transformation: Zn+1 = (aZn + b) / (cZn + d)
"Every Möbius transformation is
a composition of translations,
rotations, zooms (dilations) and
inversions."
f(x) = x - f(x) / f'(x)
if(|z| > 4) { stop }
if(|z[n] - z[n-1]| < epsilon) { stop }