问题标签 [mandelbrot]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
fractals - 为什么mandelbrot的边界是2?
我试图理解为什么我们要遍历 Mandelbrot 点直到 |z| < 4. 为什么是 4?有什么法律吗?还是基于统计测量?
谢谢,伊格尔
fractals - 理解分形,尤其是曼德布罗集
我真的在努力理解我在某处读到的一句话:“我们在分形内放大的越多,我们最有可能需要执行的迭代越多”。
到目前为止,我还没有找到任何证明这句话的数学/学术论文。我还设法找到了一个计算 mandelbrot 集的小代码,取自这里: http ://warp.povusers.org/Mandelbrot/ 但是,无法理解缩放如何影响迭代。
谢谢!
java - mandelbrot 设置垂直显示
只是想知道如何垂直显示 mandelbrot 集,就像水平放置的 mandelbrot 集:
我想更像是从垂直轴查看较小的尺寸。
java - 如何让多个线程绘制到 AWT 组件上?
编辑:已解决,请在下面查找我的解决方案。
首先,这是我在这里的第一个问题,所以如果我犯了任何错误,请告诉我。
我正在尝试用 Java 编写一个 Mandelbrot 分形程序,用于培训目的。我想要的所有功能的理想选择是 Fractalizer ( http://www.fractalizer.de/en/ ),但现在,我会对在屏幕上绘制 Mandelbrot 集的程序感到满意(而不是,例如,将其写入图像文件)。当然,我希望程序快,所以我想我可以将计算分成多个线程来利用我的多核处理器;例如,在四核系统上,图像将被分成 2x2=4 个图像,每个图像由一个单独的线程计算。所有这些线程都得到一个 Graphics 对象,它们在计算像素时在该对象上绘制像素。
我的第一次尝试是让线程在 BufferedImage.getGraphics() 上绘制,并让 paint() 方法不断调用 repaint(),只要图像没有完成:
(waiterThread一个接一个地加入所有计算线程,所以只要waiterThread还活着,至少还有一个计算线程还没有结束。)
这可行,但由于频繁重新绘制,会导致画布上出现难看的闪烁。
然后,通过一个小测试程序,我发现 Graphics.draw*anything* 在paint方法返回之前立即在屏幕上绘制,所以我目前的方法如下:
- 一个具有 GridLayout 的面板,其中包含 2x2(在 <4 核系统上,1x1)MandelbrotCanvas 对象
- 每个 MandelbrotCanvas 对象将在第一次 paint() 调用中初始化一个计算线程,将它自己的 Graphics 对象传递给它(实际上,我正在使用一个自定义 GroupGraphics 类,它将一个 Graphics 调用传递给几个图形,以“备份”图像到 BufferedImage.getGraphics(),但这并不重要),并启动计算线程。
- 面板将在其paint() 方法中从每个MandelbrotCanvases 中获取计算线程并加入() 它们。
不幸的是,这只会产生黑屏。只有当计算完成时,才会显示图像。
将多个线程绘制到一个组件上的正确方法是什么?
编辑:
我不知道的是:只允许事件调度线程在 AWT 组件上绘制(粗略地说),这意味着上面的最后一种方法不可能工作 - 显然,它应该抛出异常,但我没有没有得到一个。我的解决方案是使用第一种方法 - 将图像绘制到 BufferedImage 上并将其绘制到 Canvas 上 - 唯一的修改是我重载 update() 方法以调用 paint() 方法而不清除绘画区域:
所以我想我对一般问题(“如何让多个线程在 AWT 组件上绘制?”)的回答是:你不能,这是不允许的。让线程绘制到 BufferedImage.getGraphics() 上,并重复绘制该图像。像上面那样重载 update() 方法以避免闪烁。(现在看起来真的很棒。)在我的情况下我不能使用的另一个技巧,但仍然很好,是 repaint() 的一个变体,它接受矩形参数来指定必须重绘的区域,并且一个需要时间参数(以毫秒为单位)的变体,因此不必立即进行重绘。
EDIT2:此链接提供了非常有用的信息:http: //java.sun.com/products/jfc/tsc/articles/painting/index.html
c# - Mandelbrot 集上的 C# 结构?
之前在 C#.Net Mandelbrot 集合上发布了一个问题,该问题得到了有益的回答,但是我不得不回到这个 Mandelbrot 集合并在其定义(虚构和真实)坐标的双变量上实现一个结构。
作为一个刚接触结构并且对它们有点生疏的人,我想就我做错了什么以及如何通过查看它来改进上述代码提供一些建议,我相信它可以稍微优化一下. 这是使用结构的正确方法吗?如果不是,有哪些替代方案或最佳技术?谢谢。
c++ - Mandelbrot设置缩放
我是 C++ 编程的新手,为了改进,我正在尝试制作一个 mandelbrot set consol 应用程序。我已经让它几乎完美地工作:图像生成,我可以放大/缩小,并且非常容易移动。但是,我遇到的问题是,当我开始放大图像的边缘时,边缘将开始“被切断”
图片缩小:
图片放大了一点——你可以看到最后一个“圆圈”被切掉了一半:
最后,放大一个时间,整个最后一个“圆圈”已经被完全切掉:
如果我继续放大,那么大圆圈的边缘也会开始被切掉。我不完全理解为什么会发生这种情况,但我的猜测是我的缩放方法在某种程度上是罪魁祸首。
这是算法计算函数的源代码(我猜错误是):
对于整个源代码,请转到(因为我的预测很可能是错误的): http: //pastebin.com/WhbS0WYE
欢迎任何建议和/或帮助。先感谢您!
c - C中的bmp分段错误
我在方形框架中制作分形(Mandelbrot 和 BuddaBrot)的 bmp 图像,如果我将宽度设为 1000 像素,没问题,但如果我将其宽度增加到 2000,我会在程序的第一行出现分段错误。发生了什么。这是我的代码:
...
c++ - Mandelbrot 放大但图像移动并缩小
我一直在做 Mandelbrot 设置并尝试缩放,但缩放模式变得非常麻烦。当我缩放时,它会完美缩放,但图像尺寸会缩小到原来的一半。下次我再次缩放时,图片尺寸会增加并尝试跳过查看窗口。代码在 c++/opengl 中。在发布到这里之前,我试图让我的代码有点干净。
执行时
1)
2)
3)
c++ - 缩放 mandelbrot 设置第二次不会让它放大到所需的位置
我正在使用 opengl/c++ 来绘制 mandelbrot 集并尝试放大。我可以第一次缩放并缩放到我想要的位置(通过单击),但是当我下次尝试缩放时,它不会缩放我想要缩放的位置,而是移动并缩放到离我想要的位置有点远的地方飞涨。我用
根据笛卡尔坐标 [-2,2] 计算鼠标点击的位置
px 和 py 是像素坐标
php - 如何正确放大曼德布罗?
我正在尝试放大我的 mandelbrot 并且我阅读了这个问题:How to perform Simple Zoom into Mandelbrot Set但我很难理解它并且它不起作用。当我像这样计算新的实数和复数时:
新的 mandelbrot 在两个轴上都有点扭曲?怎么了?这是一个示例:http ://www.phpdevpad.de/index.php?id=190 。