我正在学习如何制作Julia Set
分形。我正在使用this as a reference。
我非常清楚它背后的数学理论。我也可以手动计算它。但是,我不明白的是如何在参考文献中提到的程序中完成它。
作者有一些确定zoom
和位移的变量,并对其进行一些计算。
有人可以解释一下它们是什么吗?
答案 0 :(得分:1)
让我们来看看这一行(下面的那一行以相同的方式工作):
newRe = (x - w / 2) / (0.5 * zoom * w) + moveX;
(忽略缺少1.5
因素,这就是为了确保它看起来不“压扁”。)
它在for
循环中,将0
和w
之间的值分配给x
。 [1] 所以最左边和最右边{ {1}}值将是:
最左边:
newRe
最右边:
newRe = (0 - w / 2) / (0.5 * zoom * w) + moveX;
= -(w / 2) / w / 0.5 / zoom + moveX;
= -(1 / 2) / 0.5 / zoom + moveX;
= -1 / zoom + moveX;
它们的区别 - 即显示的Julia分形的实际矩形的宽度 - 等于:
newRe = (w - w / 2) / (0.5 * zoom * w) + moveX;
= (w / 2) / w / 0.5 / zoom + moveX;
= (1 / 2) / 0.5 / zoom + moveX;
= 1 / zoom + moveX;
(此整个计算也适用于 (1 / zoom + moveX) - (-1 / zoom + moveX)
= (1 / zoom) - (-1 / zoom)
= 2 / zoom
,newIm
和h
。)
这就是为什么增加缩放会导致我们正在检查的矩形缩小 - 这正是“放大”的原因。
[1]它实际上只有moveY
,但是这个一个像素的差异使得这个计算变得更加困难。