a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 61|回复: 0

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

[复制链接]
发表于 2012-7-31 21:48:08 | 显示全部楼层 |阅读模式
  Mandelbrot集是所有分型曲线是最着名的,上图的左半部分即为一个典型的Mandelbrot集。但是我们并不仅仅是画出图形,而且控制光标在该图形上移动,随着光标的移动,我们会发现在图形的右半部分会生成另外一种有趣的图案,而且该图案将随着光标的移动不断变换,这就是有名的Mandelbrotjulia变换。我们通过此例,进一步说明如何利用构造的数学和图形模块,采用分型生成复杂美丽的图案。/ X: n8 v8 c: s* M- |- _
  设计思想:
8 `6 _. c+ E1 e" Q  本例的设计思想和上例一样,都是采用分型,数学迭代公式将三维系统动态生成的像素投影到二维屏幕坐标上去。这里需要介绍的是Mandelbrot集和Julia集之间的对应关系。
9 h' K& F7 d8 q  据说,Mandelbrot集是Julia集的映像 或字典,之所以这样,是因为二者都是用下列公式迭代生成的:
  g5 z( I9 g5 q! o  G4 N  Z=Z*Z+C. q9 C* _7 y9 N
  其中Z和C都是复杂的数字。对应不同的C值,都有唯一的Julia集和Mandelbrot集相对应。) z: o; C2 a; E& `" k
  为了说明二者之间的关系,我们让屏幕平面代表C的一个范围,即横坐标对应C的实数部分,纵坐标对应C的虚数部分。程序首先在屏幕的左半部分生成一个Mandelbrot集,然后让用户在该图形的周围移动光标,对应每一个光标位置,即固定的C坐标,利用反转在屏幕的右半部分生成对应的Julia集。3 H2 X4 r) p: K$ k3 U  T
  程序代码# a/ E5 E* S/ G
  #include "stdio.h" /*包含头文件系统*/, _0 Y, y0 ]  @
  #include "stdlib.h"8 n) f1 `5 o7 F! j4 T( `
  #include "dos.h"% s, e. ^/ F3 Y- T9 W
  #include "conio.h"
6 b; I$ k( q- p& x6 T7 V5 e  #include "math.h"2 J2 z2 e8 Z! V% f6 U4 \6 q. n% c+ ^) i
  #include "mem.h". s5 h+ _* `' [. r6 x9 z
  #include "math.inc" /*包含自定义头文件*/4 K# s7 P" G7 Z$ `0 k3 B3 X
  #include "graph.inc"
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-29 16:55 , Processed in 0.358507 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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