a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 60|回复: 0

[C语言] 几个图形(04)

[复制链接]
发表于 2012-7-31 21:48:08 | 显示全部楼层 |阅读模式
  Mandelbrot集是所有分型曲线是最着名的,上图的左半部分即为一个典型的Mandelbrot集。但是我们并不仅仅是画出图形,而且控制光标在该图形上移动,随着光标的移动,我们会发现在图形的右半部分会生成另外一种有趣的图案,而且该图案将随着光标的移动不断变换,这就是有名的Mandelbrotjulia变换。我们通过此例,进一步说明如何利用构造的数学和图形模块,采用分型生成复杂美丽的图案。
8 a0 _9 m" K: U. c  设计思想:4 }/ J* u6 @; x! y" G! q
  本例的设计思想和上例一样,都是采用分型,数学迭代公式将三维系统动态生成的像素投影到二维屏幕坐标上去。这里需要介绍的是Mandelbrot集和Julia集之间的对应关系。# P7 L6 P: d' y9 m
  据说,Mandelbrot集是Julia集的映像 或字典,之所以这样,是因为二者都是用下列公式迭代生成的:
5 x1 c8 ^3 B% S5 X* Z: L  Z=Z*Z+C( G7 f- d/ r' |
  其中Z和C都是复杂的数字。对应不同的C值,都有唯一的Julia集和Mandelbrot集相对应。9 P! p, T$ ?5 i9 ^  D% ?) j
  为了说明二者之间的关系,我们让屏幕平面代表C的一个范围,即横坐标对应C的实数部分,纵坐标对应C的虚数部分。程序首先在屏幕的左半部分生成一个Mandelbrot集,然后让用户在该图形的周围移动光标,对应每一个光标位置,即固定的C坐标,利用反转在屏幕的右半部分生成对应的Julia集。) _9 a$ c8 ~3 e4 T
  程序代码/ ], R# U/ t- s( [# }+ P6 l
  #include "stdio.h" /*包含头文件系统*/
( C7 U1 _8 N* n' X2 \. }- c! _$ D  #include "stdlib.h"
& a  w3 @1 w- y; f0 V4 ^6 e3 T  #include "dos.h", X# k6 ^* T% f
  #include "conio.h"/ o+ Z7 h' _* J5 ]- I0 y
  #include "math.h"
+ W8 y) U8 X# J8 L; y; H  #include "mem.h"
. S" b; q# Z' Z  t. O6 s% P  #include "math.inc" /*包含自定义头文件*/
" q0 R; t* _. S/ f/ \' y# d; Y, s  #include "graph.inc"
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-17 13:06 , Processed in 0.213573 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表