分形理论在计算机图形学中的应用—免费毕业设计论文内容摘要:
参数窗口值, oldPoint 表示鼠标移动前的位置, newPoint 表示鼠标移动后的位置。 那么就可以得到如下式子: t m pDoubl e = xMa x xMi nxM i n = xMi n x * ( ne wP oi nt .x ol dP oi nt .x)。 xM a x = xMi n + t m pDoubl e。 t m pDoubl e = y Ma x y Mi n。 y Mi n = y Mi n y * ( ne wP oi nt .y ol dP oi nt .y )。 y Ma x = y Mi n + t m pDoubl e。 经过实验证明,这个方法对 Julia 集与 Mandelbrot 集都适用。 图形矢量移动前后效果对比参见图 与图。 2, Julia 集与 Mandelbrot 集的矢量放大 :先说明对 Mandelbrot 集的放理学学士学位论文 第二章 分形 相关 理 论 问题 8 大 ,Mandelbrot 集是将参数 C 走遍参数窗口的所有值,经过逃逸时间算法的运算最终在绘图窗口中画出图来,由此可知,参数窗口的大小和位置就决定了所绘 Mandelbrot 集的放大区域。 已知 m a x m i n( ) /( 1 )x x x w id th ,m a x m in( ) /( 1 )y y y h e igh t , min *tp p x p , min *tq q y q ,其中0,1, 2.. . 1txn, 0,1, 2... 1tyn,可以得出: minmin**p p x pq q y q 从而可得: 用计算机语言来描述就是: xMin = xMin + x* ol dP oint .x。 xMa x = tm pD oub l e + x* ne w P oint .x。 tm pD oub l e = y Min。 y Min = y Min + y * ol dP oint .y。 y Ma x = tm pD oub l e + y * ne w P oint .y。 这样我们只要将得到的 (xMin,yMin), (xMax,yMax)代替原来的参数窗口值就可以实现对窗口的放大 了。 Julia 集的放大原理与 Mandelbrot 集的放大原理相同,就不再赘述了。 图形的矢量放大前后效果对比见图 与图。 3, Julia 集的旋转: 由计算机图形学可知,在二维平面上按指定位置 rr(x,y) 旋转,需要经过三个步骤: 平移对象使移动点位置移到坐标原点。 绕坐标原点旋转。 平移对象使基准点回到其原始位置。 将其写成矩阵形式如下: 39。 39。 m in m in m in39。 39。 m in m in m inm a x m a x m a x39。 39。 m a x m a x m a x****p p x pq q x qp p x pq p x p 理学学士学位论文 第二章 分形 相关 理 论 问题 9 1 0 0 c os s i n 0 1 00 1 0 * s i n c os 0 * 0 10 0 1 0 0 1 0 0 1c os s i n ( 1 c os ) s i ns i n c os ( 1 c os ) s i n0 0 1rrrrxyxyyx 转换成式子如下: 39。 r r r39。 r r rx = x + ( x x ) * c o s ( y y ) * s iny = y + ( x x ) * s in + ( y y ) * c o s 将这个式子应用到 Julia 集绘制算法中,这里假定绕屏幕的中点旋转,屏幕的宽度为 width,高度为 height,用坐标表示为 (width/2, height/2),从前面绘制 Julia 集的方法中可知下列两个步骤: ○ 1 0 min *xx x n x , 0 m in *yy y n y 。 ○ 2 根据下列的迭代过程从 ( , )ttxy 算出 11( , )nnxy,计数 t=t+1。 2211 2t t tt t tx x y py x y q 这里只需要修改 ,xynn的值,所以可得: xx x yyte m p = nn = w idth /2 + ( n w idth /2) * c o s ( n h e igh t/ 2 ) * sinn = h e igh t/ 2 + ( te m p w idth /2) * sin + ( n y h e igh t/ 2 ) * c o s 再将获得的 ,xynn,进行 m in *txx x n x , m in *tyy y n y 的运算,得到新的,ttxy。 再将 ,ttxy进行下一步运算即可实现对 Julia 集的旋转。 图形的矢量旋转前后效果对比见图 与图。 4, 将 Julia 集压缩到 Mandelbrot 集的收敛区域,要将 Julia 集压缩到Mandelbrot 集收敛区域中, 需要先对前面绘制 Julia 集算法中提到的 ( , )nnxy进行 Mandelbrot 集算法变换,然后再进行 Julia 集算法变换。 又因为逃逸时间算法绘制 Julia 集和绘制 Mandelbrot 集的步骤都是一样的,差别只体现在步骤 ○ 3 ,即由 ( , )nnxy 计算出 11( , )nnxy这一步。 即要在前面提到的绘制Julia 集的计算机算法步骤 ○ 2 后面添加下列几步算法: ○ A 令 t1= 0x ,t2= 0x , i=0, t3=t4=0,N=10 进行如下循环。 ○ B 理学学士学位论文 第二章 分形 相关 理 论 问题 10 00t 3 = t 1 * t 1 t 2 * t 2 + x 0 .7t 4 = 2 * t 1 * t 2 + yt 1 = t 3t 2 = t 4 计数 i=i+1。 ○ C 如果 iN,返回步骤 ○ B ,否则 00x =t1,y =t2。 ○ D 返回值 00x,y ,回到算法步骤 ○ 3 继续进行运算。 算法的效果图参见图。 二维元胞自动机生成分形图案 元胞 分布在二维欧氏几何平面上规则划分的网格点上,则称它为二维元胞自动机。 为了使用二维元胞自动机绘图,假定有一个 aa 的网络,其左上角的格子为( 0,0),右下角的格子为( a1,a1),这样主要是为了对应计算机的屏幕坐 标。 且 每 个 格 子 的 初 始 状 态 均 为 0 ,即 F(x,y)=0 ,设0 0 0 0/ 2 , / 2 , ( , ) 1x a y a F x y ,将此网格的中心部分 00( , )xy 点为中心,将 00( , )xy以 外的点分成若干层次,紧靠 00( , )xy 的 8 个点为第一层,紧靠第一层外面的 16点 为第二层,紧靠第二层外面的 24 个点为第三层,以此类推,一直到最外面一层。 此网格共有 a/2 层,设 k 为层数,从 k=1 到 k=a/2,进行如下循环: ○ 1 设第 k 层中任意点为 ( , )iixy ,则判断其临近 8 点的现有状态;如果 ( 1 , 1 ) ( , 1 ) ( 1 , 1 ) ( 1 , )( 1 , 1 ) ( , 1 ) ( 1 , 1 ) ( 1 , )i i i i i i i ii i i i i i iF x y F x y F x y F x yF x y F x y F x y F x y 奇 数 则 ( , ) 1iiF x y 否则 ( , ) 0iiF x y 当每一层中所有点判断完结后,进行下一步。 ○ 2 对 ( , ) 1iiF x y 的点着色。 ○ 3 k=k+1,返回到步骤 ○ 1 ,直至循环结束。 图形参见:图。 理学学士学位论文 第二章 分形 相关 理 论 问题 11 GumowskiMira 公式 1980 年 , 工作在 CERN 的物理学家 Gumowski, I. 和 Mira, C. 尝试计 算模拟基本粒子轨迹 (The trajectories of elementary particles) 在加速器 (Accelerator) 中的行为。 他们使用了这组方程 : n+ 1 nn+ 1 n+ 1x = b * + f (x ) y = x + f (x ) ny 其中的函数 F(x)是他们所考虑的模型 , 其中一个主要的模型他们使用了 : f ( x) = a * + 2* ( 1 a ) * x* x/ ( 1+x* x) x 其中 a 是一个 参数 , 通常在 1 和 1 之间 , b 是一个非常敏感的常数 , 通常非常接近于。 如果 b 有一个轻微增长到 , 轨迹会膨胀 , 或者螺旋向外至无限 ; 如果 b 有一个轻微的减小 , 比如 , 那么轨迹会收缩至奇异吸引子 (The attractor points)。 最后一个重要的影响因素是初始值 , 典型的初始值 X 和 Y 在 20和 20 之间。 下面是绘制 GumowskiMira 分形图的算法: ○ 1 假定 a=, b=, i=0, x=1, y=1。 ○ 2 进行 计算: z = x。 x = b * y + w。 w = a * x + 2 * ( 1 a ) * x * x / ( 1 + u )。 y = w z。 i = i + 1。 ○ 3 如果 i1000, 对点 (x*20,y*20)着色,返回步骤 ○ 2。 如果 i 1000 , 结束循环。 图形参见:图。 分形图形的位图操作 1, 图形的保存:图形的保存可以分为三个步骤,先获取用户想要将图形保存为的文件名,然后再将当前客户区的图形拷贝成位图,最后将位图写入文件。 理学学士学位论文 第二章 分形 相关 理 论 问题 12 ○ 1 获取文件名可以使用 CFileDialog 类,初始化 CFileDialog 类后,使用类成员函数 DoModal()显示对话框。 然后使用类成员函数 GetFileName()就可以获得用户输入的文件名。 ○ 2 将当前客户区域拷贝为位图操作比较复杂,这里只能将其简略化后再加以描述。 要将当前客户区域拷贝为位图,需要先获取当前窗口的句柄,这个可以使用函数 HWND GetSafeHw nd( ) const。 得到。 然后需要确定当前客户区域的大小,而这个可以使用函数 void GetClientRect( LPRECT lpRect ) const。 得到,函数中的参数 lpRect 表示客户区域的大小。 为了拷贝客户区的图形到内存,我写了一个函数 CopyClientRectToDIB(HWND hander,CRect rect),其中的 hander为当前窗口的句柄, rect 表示客户区域的大小。 在函数中,因为这里要将客户区坐标转换为屏幕坐标 (如欲深入了解,请参见《 Windows 编程》第五章 图形基础 ),所以要先用函数 void ClientToScreen( LPRECT lpRect ) const 将显示区域坐标转换为屏幕坐标。 得到需 要的客户区域 lpRect 后,将 lpRect 指向的区域拷贝成 Bitmap,使用 BitBlt(HDC,int,int,int,int,HDC,int,int,unsigned long)。 可以达到要求。 最后将指向位图的句柄返回。 ○ 3 将位图保存到磁盘,这个操作比较简单,创建一个使用用户输入的文件名的文件,然后将图形写入文件即可。 2, 位图的复制和剪切。 位图的复制和剪切原理是相同的,它们不同点在于剪切的时候需要在将选定区域复制后将其重画为白色区域。 复制图形区域为位图上面我们已经。分形理论在计算机图形学中的应用—免费毕业设计论文
相关推荐
总承包方负担的各种措施费、规费、物价上涨引起的价差、税金、风险、保险及政府各部门的收费等一切费用。 除根据合同约定的在工程实施过程中需进行增减的款项外,合同价格不作调整。 付款方式 ( 1)、 预付款 预付款的额度和支付:预付款比例为合同总价的 %,具体金额为人民币 万元(大写: 元 整),视为已支付的工程款,预付款在本合同签定后 15 个工作日内支付。 ( 2)、工程进度款的支付方式
hirlwind I)计算机的附件诞生。 1958 年美国 Cal p 公司发明了滚筒式绘图仪, Gerber 公司研制出了平板式绘图仪。 1962 年, MIT林肯实验室的 ()发表了一篇题为“ Sketchpad:一个人 机通信的图形系统 ” 的博士论文,首次使用了计算机图 形学( Computer Graphics)这个术语。 60年代中期,美国的 MIT、通用汽车公司
元。 第三条 乙方可以就上述提供担保 ,于本合同成立时 ,以前条所载的金额与日期 ,开出支票 张交付甲方。 上述支票的保管处理权限属甲方 ,每次交付支票 ,即视为乙方偿还货款。 第四条 甲方于本合同订立的同时 ,将产品交予乙方 ,并同意乙
成的机械损坏,由乙方照价赔偿,并直接在工程款中扣除。 协助乙方办理为本工程施工的乙方员工的工伤保险及暂住等事宜; 复核乙方上报的主要管理人员及技术工人名单,收取相应资料备案; 工程款结算时,甲方有权拒绝由于乙方原因造成的得不到监理和业主认可的工程量。 在施工过程中,乙方有下列行为之一的,甲方有权要求乙方限期整改,乙方经限期整改后仍有下列行为之一的,甲方有权终止合同,清退乙方出场。
的统一要求。 专业公司负责将所管辖的分包单位自带的施工机械作为自己施工班组的施工机械进行管理。 机械化专业公司应把其他专业公司所管辖分包单位的起重、运输机械等的安装、使用、维护、保养纳入专业管理范围,视同自己的机械设备定期进行巡视检查,组织操作人员进行安全学习,协助工程管理部门进行监督检查。 机械化专业公司在巡视检查中发现分包单位的起重、运输机械存在隐患和问题时
第四 条: 外包物流费用 管理 运费 管理 ( 1)运费报销程序 分 公 司 根 据 实 际 情 况 委 托 第 三 方 物 流进 行 发 运物 流 内 勤 对 发 运 单 据 进 行 审 核 , 签 字确 认 , 并 填 写 “ 分 公 司 货 运 费 用 明 细登 记 表 ”会 计 根 据 物 流 内 勤 和 分 公 司 经 理 审 核签 字 的 货 运 单 据 进 行 报 销分 公 司 经