朱利亚集合是一个在复平面上形成分形的点的集合。以法国数学家加斯顿·朱利亚(Gaston Julia)的名字命名。

朱利亚集合可以由下式进行反复迭代得到:

对于固定的复数c,取某一z值(如z = z0),可以得到序列

这一序列可能反散于无穷大或始终处于某一范围之内并收敛于某一值。我们将使其不扩散的z值的集合称为朱利亚集合。

以下使用OpenCV编码绘制Julia集图形:

代码:

#include <Windows.h>
#include<highgui/highgui.hpp>using namespace cv;const int icount = 200;     //迭代次数const float c = -0.85;       //实部
const float d = 0.088;      //虚部
double m_real, m_image;     //Mandelbro集class ComplexClass
{
public:double real;double image;ComplexClass(double r = 0, double i = 0) { real = r, image = i; }
};ComplexClass operator+(const ComplexClass& a, const ComplexClass &b)
{ComplexClass c;c.real = a.real + b.real;c.image = a.image + b.image;return c;
}ComplexClass operator*(const ComplexClass& a, const ComplexClass &b)
{ComplexClass c;c.real = a.real * b.real - a.image * b.image;c.image = a.image * b.real + a.real * b.image;return c;
}double Model(ComplexClass a)
{return sqrtf(a.real * a.real + a.image * a.image);
}double Iteration(ComplexClass a, int n)
{if (n == 0)return Model(a);else{ComplexClass temp = a*a;temp.real += c;temp.image += d;//    temp.real += m_real;  把这两句代替前面的两句就是mandelbrot集了//    temp.image += m_image;return Iteration(temp, n - 1);}
}Vec3b dye(double dist)
{if (dist < 1000000 && dist>-1000000)return Vec3b(255, 0, 0);elsereturn Vec3b(0, 0, 0);   //Julia集之外的区域置为黑色
}int mainFun()
{Mat image = Mat(Size(500, 500), CV_8UC3, Scalar::all(10));for (int Y = 0; Y < image.rows; Y++){for (int X = 0; X < image.cols; X++){float x = (X - image.cols / 2) / 200.0;float y = (Y - image.rows / 2) / 200.0;m_real = x;m_image = y;ComplexClass a(x, y);float dist = Iteration(a, icount);image.at<Vec3b>(Y, X) = dye(dist);}}//namedWindow("OpenCV For Julia", 0);imshow("OpenCV For Julia | c = -0.85  d = 0.088", image);waitKey();return 0;
}//-----开始------
void COpenCVLearningDlg::OnBnClickedStartButton()
{mainFun();
}

效果图:

c=-0.85 d=0.088:

c=-0.8 d=0.156:

c=-0.576   d=0.456:

c=0.285 d=0.02:

欢迎扫码关注我的微信公众号

原文地址:https://blog.csdn.net/dcrmg/article/details/54849036

OpenCV_15绘制朱利亚(Julia)集合图形相关推荐

  1. Python实现朱利亚集算法及完整源码

    Python实现朱利亚集算法及完整源码 朱利亚集是一种数学图形,它的形态多变,美丽而神秘.在计算机绘图领域,朱利亚集被广泛应用,并因此成为了数字艺术的重要组成部分. 在本文中,我将向大家介绍如何使用P ...

  2. NBA名人堂之-朱利叶斯·欧文|埃尔文·海耶斯|多尔夫·谢伊斯|鲍勃·佩蒂特|戴夫·冰

    朱利叶斯·欧文 英文名:Julius Erving 出生:1950年2月22日 身高:2.01米 NBA生涯:1976-1983年 司职:前锋 主要荣誉: ①1983年获NBA总冠军: ②5次入选NB ...

  3. 如何使用MATLAB绘制不同类型的二维图形

    如何使用MATLAB绘制不同类型的二维图形 听语音 | 浏览:360 | 更新:2014-11-30 18:10 | 标签:matlab 1 2 3 4 5 分步阅读 如何用MATLAB绘制各种二维图 ...

  4. 中班机器人教室设计方案_奇思妙想一起玩,机器人来了安格利亚东郡生态幼儿园亲子活动...

    奇思妙想一起玩 机器人总动员亲子活动 课程起源 有一天午休起床几个小女生正排队梳辫子,因为需要等待,孩子们比较无聊就在看教室的摆件,突然小朋友们就用机器人的语调开始对话,我听到后感觉很有意思也用机器人 ...

  5. 变量命名 – 匈利亚命名法则 - C语言零基础入门教程

    目录 1.属性部分 2.类型部分 3.描述部分 4.MFC.句柄.控件及结构的命名规范 5.变量命名规范 6.库标识符命名法 7.举例 8.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ ...

  6. Matlab制作朱利表

    朱利判据 其中 {bn−k=an−k−ana0∗akcn−k=bn−k−bnb0∗bk...qn−k=pn−k−pnp0∗pk\begin{cases} b_{n-k}=a_{n-k}-\frac{a ...

  7. 炉石传说强化机器人,炉石传说:这6张机械卡是最强势的,奇利亚斯只排在了最后一名...

    原标题:炉石传说:这6张机械卡是最强势的,奇利亚斯只排在了最后一名 炉石传说的种族还是非常多的,除了给大家说过的野兽和元素之外,机械在近两个版本也非常活跃,并且很多是砰砰计划中的,因此离退环境还有很久 ...

  8. 解读“维基解密”与朱利安•阿桑奇

    解读"维基解密"与朱利安•阿桑奇 老牌黑客与失意父亲 阿桑奇于1971年出生在澳大利亚东北海岸的汤斯维尔市.他的母亲"克莱尔"(化名)在他满周岁时和一位导演结婚 ...

  9. 《密码朋克:自由与互联网的未来》[澳] 朱利安-阿桑奇

    一.简述 密码朋克是提倡通过使用密码术及其类似手段来实现社会和政治改革. 整本书的内容都是作者和他的朋友的谈话,讨论参与者包括 朱利安-阿桑奇(维基解密的主编和创始人):雅各布-阿佩尔鲍姆(创客空间& ...

  10. 揭秘维基解密及创始人:朱利安·阿桑奇 [图]

    7月26日,<纽约时报>.英国<卫报>和德国<明镜周刊>,全球三大新闻媒体同一天行动,驻阿美军9.2万多份秘密作战记录.档案和录像同时曝 光,这场战争,远比任何人想 ...

最新文章

  1. pytorch中如何处理RNN输入变长序列padding
  2. 二分枚举+贪心(nyist疯牛)
  3. Eclipse中JRE System Library、Web App Libraries的作用
  4. vmware克隆Centos6.4虚拟机网卡无法启动问题
  5. C# 使用NPlot绘图
  6. matlab调用自己写的函数时报错: reference to a cleared variable
  7. springboot controller 分页查询_Spring Boot实战分页查询附近的人: Redis+GeoHash+Lua
  8. python中out什么意思_ref和out的使用与区别|python基础教程|python入门|python教程
  9. python函数求n年后本息_Python自定义函数计算给定日期是该年第几天的方法示例...
  10. 眼动追踪技术 Eye tracking总结
  11. dev分支clone时git报错:'origin/dev' is not a commit and a branch 'dev' cannot be created from it
  12. 图片文字识别如何实现
  13. 3-八爪鱼自定义数据采集(关键词循环、数据格式化)
  14. 韩顺平零基础循序渐进学Java——自学笔记
  15. 战略变了 IBM服务器由产品到解决方案的转变
  16. 利用DICOM文件实现2D与3D体素坐标之间的转换
  17. Springboot 注解类里面public @interface xxx 什么意思
  18. CSS深度(穿透)选择器
  19. 拓扑排序 POJ - 3687反向图跑字典序(重边)
  20. android aidl混淆代码,Android代码混淆

热门文章

  1. 【元胞自动机】基于元胞自动机实现单边教室人群疏散含Matlab源码
  2. PID控制的现象与本质
  3. 虚拟机出现entering emergency mode,使用xfs_rapair出现Device or resource busy解决
  4. 并联串联混合的电压和电流_快速掌握电阻串并联电路及重要特性
  5. 错误排查:Cloudera Manager Agent 的 Parcel 目录位于可用空间小于 10.0 吉字节 的文件系统上。 /opt/cloudera/parcels...
  6. android cpu型号采集,Android查看CPU型号设备信息等
  7. vba实现简单的数据排序和颜色统计
  8. 这款软件有多“硬” ——从国内首款基于云架构的三维CAD平台CrownCAD说起
  9. 联通光猫+路由器配置IPv6流程
  10. 向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读