介绍怎么用c语言写分形图形的实现

维普资讯 http://doc.wendoc.com

7 8

20 04年第 4期

用 C语言实现分形

黄锦祝

(西职业技术学院计算中心,南宁明阳 5 02 )广 3 26

图形

【摘

要】本文简要介绍分形学的基本概念,介绍分形树、分形山的原理及其实现的方法给出了实现一幅 分形山分形树 c程序一

自然景观的 C源程序。

【关键词】分形图形

1引言、

近年来,随着计算机软、件技术的迅速发展,硬计算机图形处理技术也日月异,新已经成为各行各业中一种实用的工具。计算机处理图形是计算机应用史上的一次重大变革,也是多种媒体信息处理中以视觉为主的处理技术的重大突破,它将千百年来人们共识的“闻不如一见”“百、眼见为实”“和图文并茂”追等求一一变为现实。近几年,机多媒体技术、A计算机辅助计算 C D(设计 )C I计算机辅助教学 )计算机辅助绘图、、 A(、计算机艺术、计

es le

I /否则继续生长/ Sat= A g— BacFn★ 05; t r nl e r ha n . /计算下个分枝生长角度/ T e= BacFn★ I BacD ni ht a r ha n n rnh esy; v t/计算下个分枝间角/

度差

f Te D p( ) ( r e 3 e/如果生长深度小于 3/, H i tat eg Fc r= H i tat k 05;/调整裁剪率 h o eg Fco ./则 h r- x c= R udH i t iD A g )& B/计算下个分枝的生长 i n on ( e h★Sn ( nl ) 0 g e/ y e= R u d H i t oD( n l)& x f/坐标 i n o n ( e h - s A g ) 0 ff g kC e;/ st l (r C l ) ec o Te o r; or e o /树干及树枝的颜色/

l e x Y x+xn, i (,, n ic Y—yn ) ie; 算机动画、图形、图像处理、戏等发展很快,游这些都是以计算机 fr i= 1; i<= B ac Dest o( rn h n i y;i++ ) 图形为主。算机生成图形的方法有很多,直接用各种计算机计有 I N w egt= R udH i t★ H i tatr& xf eH i h on ( eg h e hFc ) 0ff g o;//计算下个分枝语言提

供的点、、、形等函数绘制的,通过各种计算机画线园矩有的高度笔软件进行绘制的,也有通过 3 S C D等软件绘制的。但这些 D、A Te (—y c x xn。S r - . Sg (t t -R n Ita s R u d r Y i,+i e n c t t 0 5+ i S r) k a dn(b ( o n a k n a绘图方法相当一部分是手工绘制的,相当一部分则要根据欧氏 (t t) )/递归画树的分枝 Sa )+1,/ r B a cF n★ An lF co, Ne Heg t★ 0 5+R n ltNe Hegt ) rn h a ge atr w ih . a dn( w i+1 . h几何建立一个数学模型,由数学模型生成图形。用这些方法再使 Heg tatrT eDe ihF co。 re p一1); 画出的图形比较生硬,图形也比较简单。对于比较复杂的图形, Sa tt= S r r tt+T e a ht a;/计算分枝起始角度/ l -尤其是表面不光滑的图形,计难度非常大,设特别是自然景观中 l 的细节很难描绘出来。分形学原理利用到计算机图形上,把不仅 l 使生成的图形逼真,而且可以模拟自然景观中的细节,计的方设为了使生成的树更为逼真,可以把树干及接近树干的树枝法也比较简单,是计算机图形的一个重要分支。 适当画粗。画法是用在树干的旁边再画几根线,即在生成树的函

2分形图形原理、

数内加上如下语句:

iTeD p= f re e= N) (/如果画树干,/则在两 f (=一2J<: r j>

l e x+jY x+xn i ( n,, ie+ (★0 8, j . ) Y—yn ) ie;

把在形态、功能和信息等方面具有自相似性的对象称为分形。自相似性是指局部的形态与整体的形态相似,局部与整体相互依赖。由此可以通过局部认识和推及整体。在自界中。然很多的自然景观就具有自相似性。如云彩、山脉、海岸线、焰、火水波等,只要抽象出这些自然景观的某些特征,再不断放大,可以就 得到整体。计算机分形图形就是利用这一原理实现的。

3用分形图形原理生成一棵树、

es i TeDp… N 1 l (r e ef e ) /如果是与树干相连

的/ f (=一1j

l e x+jY x+xn i ( n,, ic+jY—yn ), ic; es fTeDe =N一2、 lei( re p

o j 0 J

es le

生成树是分形图形中比较简单的方法。首先画一根树干,把 l ex Y x+xn, i (,, n ie Y—yn ) ie; 树干按一定比例缩小作为树枝的长度,以某个角度某个比例在 4用分形图形原理生成一座山、树干的上面画树枝,再把树枝按一定的比例缩小后,在每根树枝座山从外形看,以类似于一个三角形。此可以先生成可因上继续画树枝,由于树枝越来越短,来越多,后就象树叶一个三角形,越最然后在三角形每一条边上随机抽取一个点,机移随样。为了避免所画的树呆板,成树枝的角度可以随机变化。 动一定距离后,这些点与原来每条边上的两个顶点连接,生由把构成此所绘制的树就很逼真。生成的步骤如下图所示: 新的三角形。断重复上述过程。不由于生成的三角形的边越来越短,后就象点一样,成山表面的细节,了使绘出的山更逼最形为真,以用几个三角形进行叠加。生成步骤如下所示:可

一一

用 C实现分形树的函数

/树生长函数/

v i e (n,itx l a ge l a rnh a,f a ih,f a ihFatr n odTrc it n,f tAnl,f tBa c F n l tHeg t l t g t co,it Y o o o o He Te D p) re e I i i; n . t j

几座山叠加如图所示

如枝果分深度为。则画 ,树叶

stoo( ef oo ) eclr LaC lr; l e( i x一3 Y x+3 Y n,。,) l e(。 i x Y一3 x Y+3 n,。 )

实现分形山的

/分形山函数/

vi a n u tit 1 it l itx,n 2 it 3 it 3 ith it u e ) odd w mo n(n .n,n 2 it,n,n,n,n x y y x y Mo D p

I

(下转第 5 6页)

c语言分形程序,C语言实现分形图形相关推荐

  1. c语言名字程序,c语言获得程序位数和操作系统位数和名称

    // vcis64.cpp : VC 64位程序开发心的--c语言获得程序位数和操作系统位数和名称. #include #include #include #include // 获取程序位数(被编译 ...

  2. 常用c语言小程序,c语言经典小程序汇总大全

    网上有很多的人说编程有多么多么无聊,其实:不要管别人怎么说,别人说什么,做你自己喜欢做的事就好.坚持下来,你会发现编程的乐趣的.当然,如果你觉得学习编程语言很痛苦,坚持了一段时间后无果,南无果断放弃未 ...

  3. c语言小程序作业,c语言小程序(c语言简单小程序代码)

    所以特此求经典C语言小程序.谢谢大家的关注!!! #include #include void function(int n){ int i,j,k,x=0; for(i=1;i<=n;i++) ...

  4. c语言实验程序,C语言实验程序

    <C语言实验程序>由会员分享,可在线阅读,更多相关<C语言实验程序(11页珍藏版)>请在人人文库网上搜索. 1.P113:6 #include void main() floa ...

  5. c语言编号程序,c语言中如何在一个程序语句前加编号c语言中如何在一个程序语句前加...

    多数情况下,现在的编程高手都是从学习C 语言入门的,在学校里,计算机相关专业中最基础的课程也包括C 语言,因此,掌握好这门课程对每一位立志成为优秀程序员的初学者来说是大有裨益的!另外,对想通过参加全国 ...

  6. c语言文件发送程序,C语言程序例程的文件结构

    以往写C语言程序都是一个文件里面写个几十.几百行,在练算法的时候还可以,现在搞开发需要模块化编程,所谓模块化编程,就是指一个程序包含多个源文件(.c 文件和 .h 文件),每个 .c 文件可以被称为一 ...

  7. C语言,后门程序,C语言CGI编程二 - 编写cmd后门

    里面该说的都说的很清楚.今天我们来用它来做一个后门,将后门放在有执行cgi权限的服务器上,通过客户端POST命令到cgi上并执行,达到控制服务器的目的. 首先下载官网上的压缩包.解压里面有cgic.c ...

  8. 物资管理系统c语言运行程序,C语言实现仓库物资管理系统.pdf

    C语语言言实实现现仓仓库库物物资资管管理理系系统统 前前言言 此系统为博主大一上学期C语言课程设计的大作业,由 当时初步接触C语言,现在来看程序写的太烂了,简直不忍直视--但是 还是想通过博客的形式记 ...

  9. 水泵调速c语言实验程序,C语言实验最原始.doc

    <C语言程序设计>实验报告 三亚学院理工分院 学号 1310750029 姓名: 边春晖 专业 软件1301 实验时间 2014年5 月23 日 节次 实验室名称 设备号 实验内容: 编写 ...

  10. c语言龟兔赛跑程序,c语言龟兔赛跑

    c语言龟兔赛跑0 cvywmz2014.12.21浏览157次分享举报 据说在很久很久以前,可怜的兔子经历了人生中最大的打击--赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪 ...

最新文章

  1. 每日程序C语言15-猴子吃桃问题
  2. NLTK找出最频繁的名词标记的程序(代码详细解释)
  3. YbtOJ-毒瘤染色【LCT】
  4. 取余运算||快速幂(洛谷-P1226)
  5. kafka是如何通过配置的bootstrap.servers获取topic元数据的呢
  6. 一维数组元素倒置 c语言,实例12 数组中元素的倒置.pdf
  7. oracle 序列_Oracle好记性不如烂笔头序列及日期时间的插入
  8. 如何解决loss NAN的问题
  9. 物联网时代下,如何打造智慧新社区?
  10. Linux环境下编写C程序
  11. 1040 有几个PAT
  12. 摄影——相机的成像原理
  13. tp 数据库查询排序_ThinkPHP对查询的数据随机排序
  14. MFC项目使用Win7自带语音库(包含COM函数返回 “没有注册类”解决方式)
  15. 两个日期区间跨度是否超过一年,开始日期距当前日期是否超过一年——js实现
  16. 电脑ping不通的原因
  17. 道长运维之CPU负载高
  18. 互动媒体技术A1作业报告
  19. 数据分析/大数据研发面经笔经(阿里/腾讯/网易/招行信用卡中心/小红书/vivo等)
  20. Flash MX ActionScript字典

热门文章

  1. c语言编程求阶梯数,c语言编程阶梯教程十二
  2. vCenter6.5+虚拟ISCSi
  3. 计算机知识怎么记牢,怎么快速学拼音打字-教孩子学拼音的3个好方法:手脑结合、增加锚点、有趣的知识才能记得牢...
  4. **alon_MM DMA Interface for PCIe使用详解
  5. 计算机不显示验证码,为什么验证码不显示,验证码显示不出来
  6. 20162320刘先润 2016-2017-2《程序设计与数据结构》课程总结
  7. Fragment运行时错误
  8. PHP 获取微视无水印源地址_最新抖音短视频无水印地址解析原理(抖音免费解析接口),以PHP代码为例...
  9. 谭浩强《C程序设计》(第四版)错误不完全汇集
  10. sublime 中文配置