【发布时间】:2022-02-28 03:21:52
【问题描述】:
我正在尝试制作 Mandelbrot Set 的功能,但我不确定我做错了什么,这里是代码:
private void StartCircles()
{
float savePower = BlackCircle.anchoredPosition.x;
GameObject[] AllCircles = new GameObject[itarations];
AllCircles[0] = BlackCircle.gameObject;
for (int i = 1; i < itarations; i++)
{
GameObject Circle = Instantiate(BlackCircle.gameObject, Vector3.zero, Quaternion.identity);
Circle.transform.SetParent(CanvasPerent);
savePower = Mathf.Pow(savePower, 2);
savePower += RedCircle.anchoredPosition.x;
Circle.GetComponent<RectTransform>().anchoredPosition = new Vector2(savePower,
AllCircles[i - 1].GetComponent<RectTransform>().anchoredPosition.y * -1);
AllCircles[i] = Circle;
}
CleanSqud = new GameObject[itarations];
CleanSqud = AllCircles;
}
我不确定 y 位置应该是什么,如果 x 位置是 2 的幂,它怎么会是 0。
这是显示:
【问题讨论】:
-
如果平方数是complex number,2 的幂的 x 位置可以是
-
我没有看到任何复杂的域,也没有基于逃逸半径的结束条件......为什么你在单像素迭代循环中使用变换、圆形和矩形?那将是Slooooooooow,而且没有任何意义。看到这个simple Mandelbort(注意片段着色器中的
for循环),一旦工作你可以移动到more advanced一个 -
要清楚 for 循环将计算每个像素的迭代次数,因此您需要对图像的每个像素执行此操作... PS如果您不熟悉复杂域,您可以在此处找到如何使用真实域计算basic operations。这里还有一些更奇特的东西tetration fractal
-
谢谢,我会学习复数
-
请注意,
2**n是 2 的幂,但n**2不是。后者被表述为“二的幂”(n**2)而不是“二的幂”(2**n)。语言差异很小,但意义重大,因为意义上的差异至关重要。
标签: c# algorithm mandelbrot