【问题标题】:make mandelbrot heightmap stay in one place使 mandelbrot 高度图留在一个地方
【发布时间】:2012-02-03 08:44:08
【问题描述】:

我有一个小问题,我的 mandelbrot 集表示为高度图矩阵,当每个单元格包含迭代次数时,它需要一个点才能达到无穷大或更少。
最后打印一个 3d 模型。当我快速缩放并开始看到整个集合浮动时,我的问题出现了(因为每个像素的迭代次数越来越多)。
有没有办法强制模型保持在 0(y 轴)但仍然让它随着每个点的迭代次数不同而增长?

我试图找到需要最少迭代次数的点(基本上是集合中的最低点)并从所有点中减去它,但这不起作用。(因为迭代次数会改变每个缩放过程例如,它使集合从值 5 跳转到 100)。

【问题讨论】:

    标签: opengl 3d fractals mandelbrot


    【解决方案1】:

    这个问题也发生在 2D 分形图上,转义值的颜色表示会“变化”。如果以 10 倍缩放,则每 10 个点应该是非缩放版本中的一个点,但随着迭代随着缩放的增长,这些点将不一样。

    解决方案(对我来说是)是找到您想要实现的最大缩放,找到该缩放级别的适当迭代因子(用于精确计算),并且每次都应用这个迭代因子,即使是缩放级别 0 .

    这会使计算变慢,在我的例子中,无论缩放级别如何,我都必须对每个点进行 5000 次迭代。

    【讨论】:

    • 感谢您的回复,我设法通过简单地遍历集合(高度矩阵)然后从所有其他点中减去最小高度来解决该问题 - 这样我的 Y-AXE 总是相对0. 我最初的问题是由于比率处理不当造成的。
    • 我是分形的精确怪人(一些正在运行的实验需要我这样做:-),我确信计算值 - 对于某些点 - 在缩放期间可能会随着您的解决方案而改变。想象一个点,当迭代 100 次时不会 趋于无穷大,但当迭代超过 150 次时它会趋于无穷大。这个点会在放大地图(这通常发生在 Mandelbrot 集的边界,黑色或平坦区域)。您的 Y 轴可能相对于 0,但两个相邻像素可能会改变它们的相对高度差。但你不必是一个精确的怪胎:-)
    • 我不确定为什么它仍然会根据您的问题引起问题,我的解决方案更改了更改的值,所有单元格之间的比率和精度保持不变。这就像在 OpenGL 中使用 glTranslated() 函数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    相关资源
    最近更新 更多