旋转的Koch雪花计算机图形学
西安科技大学
计计计计计计算机形学
旋的计计Koch雪花
寇威绍绍
2012-11-26姓名: 寇绍威 学号: 1008060211 班:计计 信绍 1002 班
旋的计计Koch雪花
一、目的绍绍绍绍
(1)掌握Koch雪花的构方法计计计
(2)掌握模型的算法计计计计计计计计计
二、要求绍绍绍绍
(1)建立平面二坐系,点位于屏幕客区中心,计计计计计计计计计计计计计计计计计x计计水平向右正,y计计计计垂直向上正。
(2)以原点心制半径计计计计计计计计r的,与计计计y计交于P0点。从P0点始,计计计计计计计计计计计计方向将三等分,得到P1和P2点。P0P1P2构成等三角形。计计计计计
(3)沿着等三角形的三条外分制三段深度计计计计计计计计计计计计计计计计计计计计计4,角计计计60?的Koch曲,形成计计计计Koch雪花。
(4)计计计计计置背景色黑色,Koch雪花白色,代表雪花中计计计计计计计计计心点的十字以色制。计计计计计计计
三、准绍绍绍绍
(1)在学完主教材相内容后,行本。计计计计计计计计计计计计计计计计计
(2)熟悉Koch曲的生成元构造方法。计计计计计计计计计计
(3)熟悉双冲机制。计计计计计
(4)熟悉定器的置方法。计计计计计计计计
四、原理绍绍绍绍
Koch曲是一个数学曲,同也是早期被描计计计计计计计计计计计计计计计计计
述的一典型分形曲。计计计计计计计计Koch曲由瑞典数学家计计计计计计计Koch在1904年表计计的《从初等几何构造的一条没有切的曲》文中提出。计计计计计计计计计计计计计
Koch曲生成如下:取一段度计计计计计计计计计计计计计计L的起点计A,点计计计B的直段,计计将其三等分,等分点计C和E。保留两端的段,将中一段计计计计计计计计CE改成计计计角θ计的两个度计计计L/3的直段计计CD和DE。然后再中的计计计计计一小段每直都按上述方式理,得到不同深度的计计计计计计计计计计计计计计计计计计计Koch曲。可以计计计计看出,Koch曲是的,但是不可。如果在正计计计计计计计计计计计计计计计计计计
三角形上按上述在外的中各凸起一个小三角计计计计计计计计计计计计计计计计每
形,一直行下去,曲形状近似一雪花,称计计计计计计计计计计计计计计计计计计计计Koch雪花。理上计计可以明不断构造的计计计计计计计计计Koch雪花周是无大的,但其面计计计计计计计计计计计却是有限的。
Koch曲的是将计计计计计计计计计计计计计计计计计计一条直段用一条折每
替代,称分形的生成元,分形的基本特性完计计计计计计计计计计计计计计计计计
全由生成元决定,定不同的生成元,就可以生成各各的分形形。计计计计计计计计计计计计计计计计计计计计计计计计
生成元:Koch曲的生成元由计计计计计计AC、CD、DE和EB计4条直段计计构成。Koch曲生成元的第一段直和第二段直之的角称计计计计计计计计计计计计计计计计计计计计计计计Koch角(0???θ90?),不同的Koch角生成的Koch曲有很大差异。最常用的计计计计计计计计计计计Koch角是θ=60?和θ=85?。生成元的起点和点坐分计计计计计计计A(ax,ay)和B(bx,by)。
Koch曲是典型的分形曲,其构造程是通反用计计计计计计计计计计计计计计计计计计计计计同一生成元来取代一段直,因而形的每每计计计计计计计计计计计一部分都和它
本身的形状相同,具有自相似性,正是分形最重要的志。计计计计计计计计计计计计计Koch曲计的构造程也决定了在算机上制采用算计计计计计计计计计计计计计计计计计计计计
法,即行函数自己用自己的程。计计计计计计计计计计计计计计
α是一个角度,计计计计计Koch角θ是不的,但其角度α计计计计计计计计计是化计计的。在AB段α=0,在CD段α=α+θ,在DE段,α=α-2θ。,计计计计先制第一段直,然后依次改角α计计计计计计计计计计计计计计计计,分制其余三条直。计计计计计计计计计计
在制计计Koch雪花,正三角形的三条吧角计计计计计计计计计计计计计60?,也就是生成元存在和水平的角,称生成元起始角。于中的起始角α0角的生计计计计计计计计计计计计计计计计计计计计计计计计成元,参数算如下:计计计计计
直段度计计计计L:Lbxax2byay2=(-)+(-)
直段的起始角α0:计计计计计计α0atanbyaybxax= --
计计n次后的Koch曲最小元计计计计计d:dL21cosθn=/(×(+))五、绍绍绍步
(1)绍制Koch雪花
以正三角形的条基,在外分制每计计计计计计计计计计计Koch曲形成计计计Koch雪花。
计制P0P1段,P0计计点起点,P1计计计计点点,计计计计Koch曲向外。制计计计计计计P1P2段,P1计计点起点,P2计计计计点点,计计计计Koch曲向内。需要计计计计计计计计计计整起始角α0=α+π,才能使得Koch曲向外。制P2P0计计计计计计段,P2点计计计起点,P0点点,计计计计Koch曲向外。计计计计
(2)双冲函数绍绍绍绍
计计计计计计计计计计计计计计计计计计计计计了形的旋,采用了双冲技。先将
形制到内存上下文计计计计计计计计计计MemDC,然后再一次性制到示上下文计计计计计计计计计计pDC上。分三次用计计Fractal()函数,在正三角形的三条上制计计计计Koch曲。计
(3)分形函数
分形函数Fractal()的参数正三角形计计计计计计计计计计条的起点和点坐每计计计计计计计计计计计计计计计计计计。函数体内先算的度、曲中一小段直的每
度以及的起始角,然后用计计计计计计计计计计Koch()函数制段计计每Koch曲。计计
(4)Koch函数
Koch函数用于在正三角形的条上制每计计计计Koch曲。段计计每Koch曲计分成4小段制,先按的起始角制第一小段直,然后依次改角计计计计计计计计计计计计计计计计计计计计计计计计计计计α,分制其余三小段直。计计计计计计计计计计计
六、代框架绍绍绍
void CSnowView::OnDraw(CDC* pDC)
{
DoubleBuffer();
}
void CSnowView::DoubleBuffer()
{
//定坐系计计计计
//画笔画计
//计计算新的坐
Fractal(x0,y0,x1,y1);
Fractal(x1,y1,x2,y2);
Fractal(x2,y2,x0,y0);
}
void CSnowView::Fractal(double bx, double by, double ex, double ey)
{
//计算L,d,angle
Koch(angle,n);
}
void CSnowView::Koch(double alpha, int n)
{
//判断n==0代,束条件计计计计计计计计
Koch(alpha,n-1);
alpha+=theta;
Koch(alpha,n-1);
alpha-=2*theta;
Koch(alpha,n-1);
alpha+=theta;
Koch(alpha,n-1);
}
void CSnowView::OnTimer(UINT nIDEvent)
{
RotateAngle+=10;
Invalidate(FALSE);
}
void CSnowView::PreSubclassWindow()
{
SetTimer(0,50,NULL);
CView::PreSubclassWindow();
}
七、截绍
八、绍绍
计计计计计计计计计计计计计计计计次的相来不,和上一次制Bezier曲相似,大计计计计计部分都是照抄计计计计计计计计计计计计计计计计计上的代,自己主要就是定量和构造几个函数之的用系。再计计计计计计计计计计计计者就是Koch函数的理解然后拓展到其
他计计计计计计计计计计计计计计计计计计计计似函数的理解而增加我分形几何算法
和模型的理计计计计计计计计计计计计计解与运用能力。
本文档为【旋转的Koch雪花计算机图形学】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。