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

article/2025/9/15 18:01:13

关于 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 度)。


http://chatgpt.dhexx.cn/article/lSPdkAHi.shtml

相关文章

Bellman-ford算法详解

什么是Bellman-ford算法 贝尔曼-福特算法&#xff08;Bellman-Ford&#xff09;是由理查德贝尔曼&#xff08;Richard Bellman&#xff09;和莱斯特福特创立的&#xff0c;求解单源最短路径问题的一种算法。其优于Dijkstra的方面是边的权值可以为负数、实现简单&#xff0c;缺…

分形(Fractal)及分形维数(Fractal dimension)

文章目录 1. 分形介绍2. 分形的定义3. 分形维数介绍4. 历史5. 缩放的作用&#xff08;Role of scaling&#xff09;6. D 不是唯一描述符7. 分形表面结构8. 例子8.8 Hausdorff dimension8.8.1 直观概念8.8.2 正式定义8.8.2.1 Hausdorff dimension8.8.2.2 Hausdorff content 8.8.…

Mandelbrot集的最新变化形态一览——MandelBox,Mandelbulb,Burning Ship,NebulaBrot

二维Mandelbrot集——Burning Ship 采用以下迭代公式 (x4-6*x2*y2y4, 4*|x|3*|y|-4*|y|3*|x|) 看不懂的&#xff0c;可以去学习深造了。。。 Mandelbulb 这个3D的Mandelbrot集采用的是以下公式&#xff0c;这应该算是超复数的一种&#xff0c;人称“triplex”&#xff0c;三…

Mandelbrot集Julia集分形的MATLAB实现(分形艺术)

Mandelbrot集Julia集分形的MATLAB实现&#xff08;分形艺术&#xff09; 1 简单Julia集的实现1.1 如何实现更光滑的展示效果&#xff1f; 2 Mandelbrot集的实现3 永恒的细节 本文首发于 matlab爱好者 微信公众号&#xff0c;欢迎关注。 惯例声明&#xff1a;本人没有相关的工程…

神奇的分形艺术: Mandelbrot集和Julia集

前言 这段时间看了一个关于维度的视频介绍&#xff0c;叹于其惊艳的多维几何体和分形的视觉动画效果。其实关于分形&#xff0c;已经有很成熟的分形软件和应用场景&#xff0c;可以参看目前流行的分形软件一览&#xff0c;不过没有及时更新&#xff0c;有些链接已经进不了&…

MATLAB | 分形的艺术——(Mandelbrot)曼德勃罗特集合

PART.0 Mandelbrot 介绍 “无规则的碎片” “魔鬼的聚合物” “上帝的指纹” Mandelbrot集合有着多种称谓&#xff0c;那么什么是曼德勃罗特集&#xff1f;Mandelbrot集合可以用复二次多项式&#xff1a; f c ( z ) z 2 c f_c(z)z^2c fc​(z)z2c 来表示&#xff0c;其中c是…

神奇的Python-实现曼德布洛特(Mandelbrot)集合(一行代码,matplotlib numpy,tensorflow)分别实现

神奇的Python-实现曼德布洛特(Mandelbrot)集合(一行代码&#xff0c;matplotlib numpy&#xff0c;tensorflow)分别实现 Mandelbrot图实际上是由Mandelbrot集合构成的图像。 Mandelbrot集合的定义如下&#xff1a; z n 1 z n 2 c z_{n1}z^2_nc zn1​zn2​c 其中&#xff…

曼德勃罗集(Mandelbrot Set)

先来膜拜一下大神&#xff01; 曼德勃罗(Benoit B. Mandelbrot)&#xff0c;数学家、经济学家&#xff0c;分形理论的创始人。1924年生于波兰华沙&#xff1b;1936年随全家移居法国巴黎&#xff0c;在那里经历了动荡的二战时期&#xff1b;1948年在帕萨迪纳获得航空硕士学位&am…

用matlab画Mandelbrot(曼德布罗特)图

Mandelbrot图实际上是由Mandelbrot集合构成的图像。 Mandelbrot集合的定义如下&#xff1a; zn1z2nc 其中&#xff0c;c是一个复数。加入给定一个复数 z0 &#xff0c;比如 z00 &#xff0c;那么这个递推式会生成一个序列&#xff1a; [z0,z1,z2,z3,...] 。如果这个序列收敛…

Mandelbrot 并行实现

最近要交并行计算的作业了,这周终于把作业写了个大概,这期间感觉学了不少东西,总结一下。 Mandelbrot Set 背景 前几天逛维基百科的时候看到了如下的消息:著名数学家、分形之父Benot B. Mandelbrot(中文名本华曼德博)美国时间10月15日辞世,享年85岁。 “1979年,在哈…

Mastering Qt 5 学习笔记-Mandelbrot

是一个 Mandelbrot 分形的多线程计算。 用户将看到分形&#xff0c;并能够在该窗口中平移和缩放。Mandelbrot 分形是一个处理复数 (a bi) 的数值集&#xff0c;该图像中的每个黑色像素都趋向于发散到一个无限值&#xff0c;&#xff0c;而绿色像素则有界于一个有限值。绿色像素…

Mandelbrot集合及其渲染

什么是Mandelbrot集合&#xff1f; Mandelbrot集合是在复数平面上组成分形的点的集合&#xff0c;它正是以数学家Mandelbrot命名。 Mandelbrot集合可以用复二次多项式\[ f_c(z)z^2c \] 来定义 其中c是一个复数。对于每一个c&#xff0c;从\(z 0\),开始对\(f_c(z)\)进行迭代。 …

分形之父 Mandelbrot

著名数学家&#xff0c;被誉为分形之父的Mandelbrot先生&#xff0c;美国时间10月15日在马萨诸塞州剑桥辞世&#xff0c;享年85岁。他用“美丽”改变了我们的世界观&#xff0c;他被认为是20世纪后半叶少有的影响深远而且广泛的科学伟人之一&#xff0c;1993年他获得沃尔夫物理…

Ettercap系列 II:基于命令行界面(结合driftnet截获目标机器正在浏览的图片)

相信跟着这个系列走&#xff0c;一直看到这篇文章的读者已经了解了基于图形化Ettercap的操作&#xff0c;并对Arp欺骗和Ettercap相关的术语有所了解。本篇就如何在命令行界面下操作ettercap&#xff0c;以实现与图形化界面相同的效果展开讨论。可能你会不解&#xff1a;既然我已…

无线局域网的嗅探攻击和防御——ettercap+driftnet

&#xfeff;&#xfeff; 无线局域网的嗅探攻击和防御 -----ettercapdriftnet 1 实验要求和目的 ●了解局域网转发数据的规则与协议 ●了解抓包软件的原理与操作流程 ●对网络中数据传输的协议有更深层次的认识 2 实验原理和背景知识 2.1 抓包软件与分析软件 本次嗅探试验所…

python实现图片嗅探工具——自编driftnet

python实现图片嗅探工具——自编driftnet 前言一、数据包嗅探二、图片捕获三、图片显示及主函数写在最后 前言 想必尝试过中间人攻击&#xff08;MITM)的小伙伴&#xff0c;大概率是知道driftnet的。这是一款简单使用的图片捕获工具&#xff0c;可以很方便的从网络数据包中抓取…

kali中 arpspoof、driftnet、流量转发的图片抓取

1、开启内核转发模式&#xff08;echo 1为转发 echo 0为拦截&#xff09; echo 1 /proc/sys/net/ipv4/ip_forward 配置完成使用命令查看cat /proc/sys/net/ipv4/ip_forward 2、使用 Arpspoof 开始攻击 命令:Arpspoof -i (自己网卡) -t 目标IP 网关 3、打开另一个终端 查看dri…

ARP欺骗攻击(流量图片)——dsniff与driftnet使用

ARP欺骗攻击&#xff08;流量&图片&#xff09; 原理&#xff1a; 首先我们![请添加图片描述](https://img-blog.csdnimg.cn/7de7923387224bcda1ea4be958032ae9.png 要明白何为ARP&#xff08;地址解析协议&#xff09;&#xff1a;是根据 IP地址 获取 物理地址 的一个 TC…

NO.26——利用ettercap和driftnet截获数据流里的图片

原理 Ettercap最初设计为交换网上的sniffer&#xff0c;但是随着发展&#xff0c;它获得了越来越多的功能&#xff0c;成为一款有效的、灵活的中介攻击工具。它支持主动及被动的协议解析并包含了许多网络和主机特性&#xff08;如OS指纹等&#xff09;分析。 Ettercap…

linux嗅探器抓包,Kali Linux 嗅探/欺骗工具 driftnet 教程

日期:2018年01月11日 观看: 13,491 C 次 Driftnet是一个监听网络流量并从它观察到的TCP流中提取图像的程序。有趣的是看到很多网络流量的主机上运行。在实验性增强中,driftnet现在从网络流量中挑选出MPEG音频流,并尝试播放它们。 Driftnet是一款从网络流量捕获图像并将其显…