确定给定点(x, y)是否在曼德尔布罗集中的函数
因此,给定任何点 (a + ib),如果该点位于 mandelbrot 集中,则该函数将返回 1;如果不在 n 次迭代中,则该函数将返回 0。
我在尝试编写此函数时遇到困难,尤其是对于复数。谁能帮助我或给我一些开始的建议?
到目前为止我只能想到一种方法来确定实数(任何x,y = 0)是否在mandelbrot集中。
编辑:抱歉忘记说我正在用 C 进行编码,不过我主要是在寻找一些伪代码的想法。
So given any point (a + ib), the function will return 1 if it is in the mandelbrot set or 0 if not for n amount of iterations.
I'm having difficulties trying to code this function, especially with the complex numbers. Can anyone help me or give some advice for me to start?
So far I can only think of a way to determine if a real number (any x, y = 0) is in the mandelbrot set.
EDIT: Sorry forgot to say that I'm coding in C, I'm looking for some psuedocode ideas mostly though.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
该集合的维基百科页面有一些伪代码,可以完成基本工作,并暗示您可以采取这样的项目的许多方向中的一些方向。理解复杂的数学是关键;传统上将复数的实部和虚部保留为一对双精度数,并手动或作为宏对它们执行所需的任何操作。 (现在,如果您的编译器使用 C99,您可以使用
complex
类型,但是这有什么乐趣...?:-))The Wikipedia page on the set has some pseudocode that does the basic job, and hints at some of the many directions in which you can take such a project. Understanding complex math is the key; it is traditional to keep the real and imaginary components of a complex as a pair of doubles and implement whatever operations you need on them by hand or as macros. (These days you can use the
complex
type if your compiler speaks C99, but where's the fun in that...? :-) )您需要重复计算复数的平方和相加:
You need to repeatedly square and add a complex number: