Mandelbrot Set (曼德布洛特集) VC 源代码

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

关于 Mandelbrot Set (曼德布洛特集) 的介绍什么的我就不多说了,网上一大堆。唯独清晰的代码不好找,所以我就贴代码吧:

// 需要安装 EasyX 库,Visual C++ 6.0 下编译通过
#include <graphics.h>
#include <conio.h>

/////////////////////////////////////////////////
// 定义复数及乘、加运算
/////////////////////////////////////////////////

// 定义复数
struct COMPLEX
{
    double re;
    double im;
};

// 定义复数“乘”运算
COMPLEX operator * (COMPLEX a, COMPLEX b)
{
    COMPLEX c;
    c.re = a.re * b.re - a.im * b.im;
    c.im = a.im * b.re + a.re * b.im;
    return c;
}

// 定义复数“加”运算
COMPLEX operator + (COMPLEX a, COMPLEX b)
{
    COMPLEX c;
    c.re = a.re + b.re;
    c.im = a.im + b.im;
    return c;
}

/////////////////////////////////////////////////
// 主函数
/////////////////////////////////////////////////
void main()
{
    // 初始化绘图窗口
    initgraph(640, 480);

    /////////////////////////////////////////////////
    // 绘制 Mandelbrot Set (曼德布洛特集)
    /////////////////////////////////////////////////
    COMPLEX z, c;
    for(int x=0; x<640; x++)
    {
        c.re = -2.1 + (1.1 - -2.1) * (x / 640.0);
        for(int y=0; y<480; y++)
        {
            c.im = -1.2 + (1.2 - -1.2) * (y / 480.0);
            z.re = z.im = 0;
            for(int k=0; k<180; k++)
            {
                if ( z.re*z.re + z.im*z.im > 4.0 )    break;
                z = z * z + c;
            }
            putpixel(x, y, (k >= 180) ? 0 : HSLtoRGB((float)((k<<5) % 360), 1.0, 0.5));
        }
    }

    // 按任意键退出
    getch();
    closegraph();
}

效果如图:




为了美观,可以修改一下颜色部分,目前代码中的颜色是这样的:
    HSLtoRGB((float)((k<<5) % 360), 1.0, 0.5)
这行代码中的 k 的取值范围是 0~180,将其映射到 HSL 颜色空间中的色相上(360 度)。

C#:实现Mandelbrot德布罗特算法(附完整源码) 阅读详情

相关推荐

OpenCV德布罗特平行线Mandelbrot Parallel的实例(附完整代码)

OpenCV德布罗特平行线Mandelbrot Parallel的实例OpenCV德布罗特平行线Mandelbrot Parallel的实例 OpenCV德布罗特平行线Mandelbrot Parallel的实例 #include <iostream> #include <opencv2/core.hpp> #include <opencv2/imgcodecs.hpp> using namespace std; using namespace cv; namesp

希望我的博客,能帮上你解决学习中工作中所遇到的问题 669

Mandelbrot:C ++代码创建mandelbrot函数的位图图像

德布罗特 C ++代码创建mandelbrot函数的位图图像

C/c++游戏代码

printf("\n\n 1,神秘沼泽 危险程度:★\n\n 2,星耀草原 危险程度:★\n\n 3,诡异森林 危险程度:★★★\n\n 4,荒漠矿场 危险程度:★★★\n\n 5,炽热炎洞 危险程度:★★★★\n\n 6,花朵宫殿 危险程度:★★★★★\n\n 0,离开\n");printf("赏金猎人:\n\n\n 你要救公主啊!printf("--------------------------欢迎来到 [苍穹世界] 2.2 测试版-----------------------\n\n\n");

qq_25918203的博客 1348

Mandelbrot:臭名昭著的德布罗特

德布罗特 臭名昭著的Mandelbrot,用P5JS编码 更多信息 我还写有关Mandelbrot文章,详细介绍了所有内容! 从公式及其单个组件,一直到此处使用的每一行代码。 我描述了一切。 因此,如果您想了解有关Mandelbrot的更多信息,请访问。 链接 与Mandelbrot密切相关。 查看中的代码,以及以了解更多信息。

德布洛特(Mandelbrot set)

如下方法,可以生成著名的德布洛特合。 def Mandelbrot_set(): Y, X = np.mgrid[-1.3:1.3:0.005, -2:1:0.005] Z = X + 1j * Y c = tf.constant(Z.astype(np.complex64)) zs = tf.Variable© ns = tf.Variable(tf.zeros_like(c, tf.flo...

arzhh的博客 3483

神奇三维分形艺术

神奇三维分形艺术:神秘洞穴似来自远古星球 www.hackbase.com 新浪科技讯 北京时间12月14日消息,据美国《连线》网站报道,近日,一群数学“极客”利用特定的数学方程经过反复迭代算法创作出一组令人叹为观止的三维分形结构图案。  “极客”一词,来自于美国俚语“ge ...新浪科技讯 北京时间12月14日消息,据美国《连线》网站报道,近日,一群数学“极客”利用特定的数学方程经过反复迭代

hydroxyl的专栏 1039

[分形学] 可以无穷放大的 Mandelbrot Set (德布洛特) VC 源代码

基于上篇文章 Mandelbrot Set (德布洛特)源代码:https://www.codebus.cn/yangw/post/mandelbrot-set 我修改了几个地方: 1. 修改了颜色,使用黑->蓝->白->棕->黑这样的渐变颜色方案(当然,可以修改 InitColor() 函数改变配色方案) 2. 增加了放大鼠标选中区域的功能。按鼠标中键可以恢复原尺寸。 3. 将迭代次数提了出来,定义了常量。如果需要绘制更精细的图,请加大常量 ITERATIONS。不

enter回车键 1222

[分形学] Mandelbrot Set (德布洛特) VC 源代码

关于 Mandelbrot Set (德布洛特) 的介绍什么的我就不多说了,网上一大堆。执行效果如图: 为了美观,可以修改一下颜色部分,目前代码中的颜色是这样的: HSLtoRGB((float)((k<<5) % 360), 1.0, 0.5) 这行代码中的 k 的取值范围是 0~180,将其映射到 HSL 颜色空间中的色相上(360)。 全部代码如下: // 程序名称:分形学 - Mandelbrot Set (德布洛特) // 编译环境:Visual C++

enter回车键 700

基于MPI实现Mandelbrot Set和Julia Set

文章目录1. Mandelbrot & Julia Set 介绍2. 初步分析2.1 Mandelbrot 的理论并行性2.2 Mandelbrot 和 Julia 的运行逻辑2.3 探究参数C对 Julia 的形状的影响3. 分区方案设计3.1 基于轮询行分段的分区方案3.2 基于 MPI 的并行计算4. 图形美化设计4.1 着色方案4.2 其他方案5. 结果和讨论6. 总结7. 附录7.1 其他结果展示7.2 源代码附录7.2.1 mandelbrot源码7.2.2 Julia源码7.3

zyw2002的博客 1729

Mandelbrot 并行实现

最近要交并行计算的作业了,这周终于把作业写了个大概,这期间感觉学了不少东西,总结一下。 Mandelbrot Set 背景 前几天逛维基百科的时候看到了如下的消息:著名数学家、分形之父Benoît B. Mandelbrot(中文名本华·德博)美国时间10月15日辞世,享年85岁。 “1979年,在哈佛大学作为访问学者的期间,德博开始研究分形之一——在复平面上一定变换下具有不变性的朱利亚合。在加斯顿·朱利亚和皮埃尔·法图学术成果的基础上,德博利用公式 fc(z) = z2 + c 反复迭代,

chaoswork的专栏 5788

Mandelbrot-Set:基于python的代码可生成具有颜色变化的各种Mandelbrot

从下面的链接安装“处理”工具 德尔布罗特 这是一个基于python的项目,在python模式下使用“处理”工具来创建Mandelbrot,我还更改了“ z”(复数)的幂,并导出了与“ z”的每n次幂相对应的那些帧,并将其编译为GIF。

德布罗特可放大图

左键放大,ctrl+左键保存图片。可改h1,h2换颜色

德勃罗合C语言串行并行代码.zip

德勃罗合C语言串行并行代码,使用OpenMP和MPI来应用并行性。

德布洛特

分形学 可以无穷放大的 Mandelbrot Set (德布洛特)

德布洛特(Mandelbrot)合样例

虽然可视化德布洛特(Mandelbrot)合与机器学习没有任何关系,但这对于将TensorFlow应用在数学更广泛的领域是一个有趣的例子。实际上,这是tensorflow一个非常直截了当的可视化运用。(我们最终也许会提供一种更加精心设计的运用方式来生成真正更加美丽的图像。)

MPI分形图像高精度绘制程序和PC端Mandelbrot-Julia分形预览程序

群端程序:Linux + MPI + C++。 Windows + dotNET + C#。更详细情况可以参见我的相册MPI程序在群上8台结点机输出4096×4096分辨率BMP图像时,达到了最大7.31的稳定加速比,达到预期目的。而且随着画布尺寸的增加,拆分块数的相应适当增加,相信加速比还有提高的余地。程序在8192×8192分辨率BMP恶事,65进程,8结点机情况下,一度达到了7.33的加速比,由于运行时间较长,只计算了一次,不列为稳定的数据。程序功能设计上已经达到预期全部功能和指标:基本功能:①支

delacroix_xu的专栏 4053

德勃罗(Mandelbrot合与其编程实现

一、从科赫雪花谈起设想一个边长为1的等边三角形(例如以下图所看到的)。取每边中间的三分之中的一个,接上去一个形状全然类似的但边长为其三分之中的一个的三角形,结果是一个六角形。如今取六角形的每个边做相同的变换,即在中间三分之中的一个接上更小的三角形,以此反复,直至无穷。外界的变得原来越细微曲折,形状接近理想化的雪花。这个图形的名字叫柯赫雪花。1904年,瑞典数学家柯赫首次描写叙述了一种后来以其名...

weixin_34321753的博客 2551

[图形学] 5行C代码实现的分形图案 - Mandelbrot Set

这是一段很有意思的C程序。      只用5行核心代码,绘制一个德博合(Mandelbrot Set)。      This is the computer graphics. Let's enjoy the beauty of Fractal and math.       #include int main() { int k=0; float i,j,r,x,y

RyuZhihao123 的博客 4100
上一篇: 云计算,分布式计算,网格计算,并行计算
下一篇: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
encaidx
博客等级 码龄18年 17粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值