- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学分形图的生成
实验一、实验目的和要求:
1、掌握分形基本原理
2、熟悉分形的计算机模拟算法
3、上机操作迭代函数系统算法
4、编译并执行谢宾斯基(Sierpinski)三角形
二、实验内容:
1、编程实现分形的迭代函数系统算法,并输出图形;
2、编译曼德布洛特集和可放大的曼德布洛特集。.
三、编程并实现
Mandelbrot Set (曼德布洛特集)的运行程序:
#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);
COMPLEX z, c;
int x, y, k; // 定义循环变量
for(x = 0; x 640; x++)
{
c.re = -2.1 + (1.1 - -2.1) * (x / 640.0);
for(y = 0; y 480; y++)
{
c.im = -1.2 + (1.2 - -1.2) * (y / 480.0);
z.re = z.im = 0;
for(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();
}
程序截图
可以无穷放大的 Mandelbrot Set (曼德布洛特集)的运行程序:
#include graphics.h
#include conio.h
#define ITERATIONS 1000
#define MAXCOLOR 64
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;
}
int Color[MAXCOLOR];
void InitColor()
{
int h1 = 240, h2 = 30;
for(int i=0; iMAXCOLOR/2; i++)
{
Color[i] = HSLtoRGB((float)h1, 1.0f, i * 2.0f / MAXCOLOR);
Color[MAXCOLOR-1-i] = HSLtoRGB((float)h2, 1.0f, i * 2.0f / MAXCOLOR);
}
}
void Draw(double fromx, double fromy, double tox, double toy)
{
COMPLEX z, c;
int x, y, k;
for(x = 0; x 640; x++)
{
c.re = fromx + (tox - fromx) * (x / 640.0);
for(y = 0; y 480; y++)
{
c.im = fromy + (toy - fromy) * (y / 480.0);
z.re = z.im = 0;
for(k = 0; k ITERATIONS; k++)
{
if ( z.re * z.re + z.im * z.im 4.0 ) break;
z = z * z +
您可能关注的文档
- 计划生育与保护环境的基本国策说课稿.doc
- 计划生育业务知识考试试卷无答案.doc
- 计划生育培训材料.doc
- 计划生育手术并发症的防治措施.doc
- 计划生育指标计算体系.doc
- 计划生育流动人口试题.doc
- 计划生育政策调整对人口数量结构及其影响的研究.doc
- 计划生育统计试题.doc
- 计划生育考试试题.doc
- 计划生育试卷.doc
- 2024-2030全球智能训练数据服务行业调研及趋势分析报告.docx
- 2024年全球及中国晶体管交换模式电源行业头部企业市场占有率及排名调研报告.docx
- 2024-2030全球警务调查案件管理系统行业调研及趋势分析报告.docx
- 2024年全球及中国飞机预处理空气(PCA)装置行业头部企业市场占有率及排名调研报告.docx
- 2024年全球及中国军事和航空航天传感器行业头部企业市场占有率及排名调研报告.docx
- 2024年全球及中国乳液型离型剂行业头部企业市场占有率及排名调研报告.docx
- 2024-2030全球FC-BGA 封装基板行业调研及趋势分析报告.docx
- 2024年全球及中国多层PE拉伸膜行业头部企业市场占有率及排名调研报告.docx
- 2024年全球及中国光学射线追踪软件行业头部企业市场占有率及排名调研报告.docx
- 2024年全球及中国可降解宠物食品包装行业头部企业市场占有率及排名调研报告.docx
文档评论(0)