计算机图形学课程设计报告简单图形的绘制

上传人:仙*** 文档编号:99500541 上传时间:2022-06-01 格式:DOC 页数:17 大小:271.50KB
收藏 版权申诉 举报 下载
计算机图形学课程设计报告简单图形的绘制_第1页
第1页 / 共17页
计算机图形学课程设计报告简单图形的绘制_第2页
第2页 / 共17页
计算机图形学课程设计报告简单图形的绘制_第3页
第3页 / 共17页
资源描述:

《计算机图形学课程设计报告简单图形的绘制》由会员分享,可在线阅读,更多相关《计算机图形学课程设计报告简单图形的绘制(17页珍藏版)》请在装配图网上搜索。

1、. -计算机图形学课程设计报告学生*:学 号:学 院:班 级:题 目:简单图形的绘制指导教师: 职称:2015年7月1日. 优选-. -目 录目录I一、选题背景1二、算法设计22.1 绘制直线、圆、椭圆、抛物线2绘制直线2绘制圆2绘制椭圆2绘制抛物线22.2 三维几何变换2三、程序及功能说明53.1 绘制直线、圆、椭圆、抛物线5绘制直线5绘制圆5绘制椭圆5绘制抛物线63.2 图形的平移63.3 图形的旋转63.4 图形的缩放7四、结果分析74.1 绘制直线、圆、椭圆、抛物线7直线7圆8椭圆8抛物线84.2 图形的平移94.3 图形的旋转104.4 图形的缩放11五、总结13六、课程设计心得体会

2、14参考文献15源程序16. 优选-. -一、选题背景二、算法设计2.1 绘制直线、圆、椭圆、抛物线 绘制直线通过两个点的坐标来绘制直线。计算机图形学中二维图形在显示输出之前需要扫描转换,生成直线的算法一般有DDA算法和中点算法。 绘制圆通过运用圆的参数方程来绘制圆的图形,其中,a,b为圆心,r为半径,运用参数方程,只需要确定半径的长度和圆心的位置,即可绘制出圆。 绘制椭圆通过运用椭圆的参数方程来绘制椭圆的图形,其中,是的变量,a,b分别为长半轴,短半轴,当确定a和b后,通过参数方程即可得到这个椭圆的方程。 绘制抛物线根据点绘制抛物线图像是通过拟合完成,根据三个点的坐标,通过数据拟合,得到经过

3、这三个点的函数关系式,从而再根据这个函数关系式绘制出抛物线上其他的点,形成一条连续的抛物线;或直接根据函数绘制图像是通过函数画出图像。2.2三维几何变换三维几何变换是二维几何变换的推广。二维几何变换在齐次坐标空间中可用33的变换矩阵表示,类似的,三维几何变换在齐次坐标空间中可用44的变换矩阵表示。三维空间中的点的齐次坐标定义为,其中,为不等与零的任意常数,。亦即点对应4维齐次坐标空间的一条直线:(2.2.1)通常为了简单起见,取为的齐次坐标。1平移变换平移变换将点在三个坐标轴方向上分别移动距离,得到新的一点,它们之间的关系表示为:,其中 。三维平移变换在其次坐标下的矩阵表示为:(2.2.2)2

4、放缩变换三维放缩变换在齐次坐标下的矩阵表示:(2.2.3)此变换的参照点为坐标原点,我们可以按下面步骤建立关于空间任一参照点的缩放变换:1平移使落于原点,变换为;2进展放缩变换;3平移回到原先的位置,变换为。从而关于参照点的缩放变换为(2.2.4)3旋转变换给定一点,首先将点和坐标表示成极坐标,即,其中。将点绕轴旋转角后,得到。易知:(2.2.5)上式矩阵形式为:(2.2.6)从而绕轴旋转角的变换在齐次坐标下的矩阵表示为:(2.2.7)类似的,绕轴和轴的旋转的变换矩阵分别为:(2.2.8)(2.2.9)如果要绕空间任意轴旋转角,可按如下步骤实现:1以为原点,为轴建立新的坐标系; 2求出从坐标系

5、到坐标系的变换;3将图形对象变换到坐标系中;4在新坐标系中绕轴旋转角,变换为;5将图形对象变换为原坐标系中,变换为。这样绕旋转角的变换为:(2.2.10)三、程序及功能说明3.1 绘制直线、圆、椭圆、抛物线 绘制直线plot(A,B)通过运用matlab中的plot函数画出两点之间的直线图像。其中A,B为直线上的两个点的坐标,通过两点绘制直线。 绘制圆function circle(A,R)alpha=0:pi/50:2*pi;%角度0,2*pi %R=2;%半径 *=R*cos(alpha)+A(1); y=R*sin(alpha)+A(2); plot(*,y,-) a*is equal首

6、先先对角度alpha分割成小区间,且求出相应的cos和sin值,再根据输入的半径和圆心坐标A,带入公式求得圆上的点的坐标,再绘制出图像。 绘制椭圆function tuocircle(a,b)t=0:pi/20:2*pi; *=a*cos(t); y=b*sin(t); plot(*,y)首先先对角度t分割成小区间得出相应的cos和sin值,根据再根据输入的长半轴a与短半轴b完善参数方程求得椭圆上的点的坐标,再绘制出图像。 绘制抛物线function parabola(A,B,C)*=A(1) B(1) C(1); y=A(2) B(2) C(2); %y=a*2+b p=polyfit(*,

7、y,2); t=-10:.1:10;%指定绘图区间 s=polyval(p,t); plot(t,s,*,y,or)通过三个点绘制抛物线是通过三点的拟合绘制出图像;通过函数是在一个区间上画出函数图像。3.2 图形的平移function change(T1,V1)中: T=1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1; T(1,4)=T1(1); T(2,4)=T1(2); T(3,4)=T1(3); ALL=T %最后的变换矩阵V2=ALL*V1;V=V2;先设T为平移变换矩阵,然后通过带入平移的长度,形成最终的平移矩阵,成为最重的变换举证ALL,将ALL左乘须变换矩阵V1,

8、最终得到变换后的图形矩阵V。3.3图形的旋转function change2(R1,V1)R=0 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1;sina=sin(R1); cosa=cos(R1);R(1,1)=cosa; R(1,2)=-sina; R(2,1)=sina; R(2,2)=cosa; ALL=R %最后的变换矩阵V2=ALL*V1;V=V2;先设R为旋转变换矩阵,首先就将带入的角度求出sina和cosa值,然后对应公式将值带入矩阵的对应位置形成最终的旋转矩阵,成为最终的变换矩阵ALL,将ALL左乘须变换矩阵V1,最终得到变换后的图形矩阵V。3.4图形的缩放fun

9、ction change3(S1,V1) S=0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 1; S(1,1)=S1(1); S(2,2)=S1(2); S(3,3)=S1(3); ALL=S V2=ALL*V1;V=V2;将S设为缩放变换矩阵,然后对应公式将缩放的值带入矩阵的对应位置形成最终的平移矩阵,成为最终的变换矩阵ALL,将ALL左乘须变换矩阵V1,最终得到变换后的图形矩阵V。四、结果分析4.1绘制直线、圆、椭圆、抛物线 直线 line(1 2,2 1) 圆 circle(2 3,2) 椭圆 tuocircle(30,0.7) 抛物线根据三个点画出抛物线: parabol

10、a(1 2,5 6,3 9)根据函数画抛物线:4.2 图形的平移 showCubic(0,0,1,1;1,0,1,1;1,1,1,1;0,1,1,1;0,0,0,1;1,0,0,1;1,1,0,1;0,1,0,1) change(4,5,6,0,0,1,1;1,0,1,1;1,1,1,1;0,1,1,1;0,0,0,1;1,0,0,1;1,1,0,1;0,1,0,1)平移矩阵:最终总变换矩阵:变换后的矩阵:4.3图形的旋转 showCubic(0,0,1,1;1,0,1,1;1,1,1,1;0,1,1,1;0,0,0,1;1,0,0,1;1,1,0,1;0,1,0,1) change2(pi/

11、3,0,0,1,1;1,0,1,1;1,1,1,1;0,1,1,1;0,0,0,1;1,0,0,1;1,1,0,1;0,1,0,1)旋转矩阵:最终变换矩阵:变换后的矩阵:4.4 图形的缩放 showCubic(0,0,1,1;1,0,1,1;1,1,1,1;0,1,1,1;0,0,0,1;1,0,0,1;1,1,0,1;0,1,0,1) change3(0.8,0.5,0.3,0,0,1,1;1,0,1,1;1,1,1,1;0,1,1,1;0,0,0,1;1,0,0,1;1,1,0,1;0,1,0,1)缩放矩阵:最终变换矩阵:变换后矩阵:缩放前图形:缩放后图形:五、总 结这次的课程设计主要是运

12、用软件matlb来实现的。这次对简单图形的绘制,如:直线、抛物线、圆、椭圆等,还有对图形进展平移、旋转、缩放操作。简单图形的绘制,主要是通过编写matlab命令来实现,对于平移、旋转、缩放主要是对应的矩阵要是四维的,然后对应矩阵的分量调整好,再按照倒序相乘,得出变换矩阵,最后与原来的图形矩阵相乘后得出新的矩阵。所以这次的课程设计是按照书上的算法步骤先求出矩阵,然后求出变换后的图像的矩阵,因为需要变成其次坐标,所以需要添加一个最后的分量1,这样各种矩阵的运算才可以实现。刚开场对这个地方不懂,编程出现了很多错误。对于题目要求:在图形显示中,使用鼠标、键盘或下拉菜单等方式进展交互控制。这个地方,我们

13、通过在matlab调用命令来实现对图形的平移、旋转、缩放等操作。. 优选-. -六、课程设计心得体会这个学期学了计算机图形学后,对我们有了很多帮助。教师讲解的非常详细,也举了很多生动的例子。所以对图形学的研究内容、应用、开展简历等。平时也通过课内实验对所学的内容通过编程实现各个功能,这让我们积累了一定的编程能力,同时对matlab也能更好的运用。本课程主要内容包括直线、圆、椭圆、抛物线等简单图形的绘制;交互的对简单图形进展平行;能够交互式的对简单图形进展旋转。这次对图形进展平移、旋转、缩放的操作,主要是对应的矩阵要是四维的,然后对应矩阵的分量调整好,再按照倒序相乘,得出变换矩阵,最后与原来的图

14、形矩阵相乘后得出新的矩阵。通过这次的课程设计,使我们的自学能力与动手实践能力得到相当大的提高,编程并不是靠看书本就能学会的,而是要靠一步步的调试一条条指令的修改试运行中学习进步的,盲目的看书并不能提高自己水平。这次的课程设计就是按照书上的步骤求矩阵,然后求出变换后的图像的矩阵,因为需要变成其次坐标,所以需要添加一个最后的分量1,这样各种矩阵的运算才可以实现。在本次的课设中让我们对计算机图形学有了一个更加深我们对计算机图形学课程理论知识的认识和理解,使我找到了理论与实践的最正确结合点。以前可能只是简单的了解记住课本一些原理,通过自己编写程序将理论付诸实践后。那些知识更加使我真正明白并深记着,尤其

15、能找到一些以前会忽略的细节。在运用matlab编写程序的时候,首先对图形的旋转、平移、缩放的原理有了深入的学习和认识,然后,在编写程序的时候从分考虑算法,用最简单的方法实现题目要求。题目中要求交互式的实现功能,但是我们直接运用matlab用命令实现了题目要求。通过这次课程设计,我们学会了团队合作,也更加明白了团队合作的效率和意义,让我们认识到一起学习并完成一项任务的意义。从这次的课程设计我们知道了自己的缺乏,学习的知识不够充分,对于现有资源材料的利用学习率太低等方面的缺点,对今后的学习和工作进步都有非常大的帮助。. 优选-. -参考文献1倪明田,吴良芝.计算机图形学M:大学,1999.2孔令德

16、. 计算机图形学课程设计教程M:大学,2021.3白建军OpenGL三维图形设计与制作M:人民邮电,1998. 优选-. -源程序1绘制直线function line(A,B)plot(A,B)2绘制圆function circle(R)alpha=0:pi/50:2*pi;%角度0,2*pi %R=2;%半径*=R*cos(alpha); y=R*sin(alpha); plot(*,y,-) a*is equal3绘制椭圆function tuocircle(a,b)t=0:pi/20:2*pi; *=a*cos(t); y=b*sin(t); plot(*,y)4根据三点绘制抛物线fun

17、ction parabola(A,B,C)%A=1 2; %B=5 6; %C=3 9; *=A(1) B(1) C(1); y=A(2) B(2) C(2); %y=a*2+b p=polyfit(*,y,2); t=-10:.1:10;%指定绘图区间s=polyval(p,t); plot(t,s,*,y,or)5根据函数绘制抛物线*=0:0.1:10;y=3*.2plot(*,y)6图形的平移变换function change(T1,V1) T=1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1; T(1,4)=T1(1); T(2,4)=T1(2); T(3,4)=T1(3

18、);T %平移 ALL=T %最后的变换矩阵 V2=ALL*V1; V=V2; V %变换后的图形矩阵,下面画图 face = V(1:4,:); %1,2,3,4 fill3(face(:,1),face(:,2),face(:,3),r); hold on; face = V(5:8,:); %5,6,7,8 fill3(face(:,1),face(:,2),face(:,3),b); hold on; face = V(2:3,:); V(7,:);V(6,:) %2,3,7,6 fill3(face(:,1),face(:,2),face(:,3),g); hold on; face

19、 = V(1,:);V(4,:);V(8,:);V(5,:); %1,4,8,5 fill3(face(:,1),face(:,2),face(:,3),y); hold on; face = V(7:8,:); V(4,:);V(3,:) %4,3,7,8 fill3(face(:,1),face(:,2),face(:,3),b); hold on; face = V(1,:);V(2,:);V(6,:);V(5,:); %1,2,6,5 fill3(face(:,1),face(:,2),face(:,3),r);a*is equal7图形的旋转变换function change2(R1

20、,V1) R=0 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1; sina=sin(R1); cosa=cos(R1); R(1,1)=cosa; R(1,2)=-sina; R(2,1)=sina; R(2,2)=cosa; R %旋转 ALL=R %最后的变换矩阵 V2=ALL*V1; V=V2; V %变换后的图形矩阵,下面画图 face = V(1:4,:); %1,2,3,4 fill3(face(:,1),face(:,2),face(:,3),r); hold on; face = V(5:8,:); %5,6,7,8 fill3(face(:,1),face(:,

21、2),face(:,3),b); hold on; face = V(2:3,:); V(7,:);V(6,:) %2,3,7,6 fill3(face(:,1),face(:,2),face(:,3),g); hold on; face = V(1,:);V(4,:);V(8,:);V(5,:); %1,4,8,5 fill3(face(:,1),face(:,2),face(:,3),y); hold on; face = V(7:8,:); V(4,:);V(3,:) %4,3,7,8 fill3(face(:,1),face(:,2),face(:,3),b); hold on; fa

22、ce = V(1,:);V(2,:);V(6,:);V(5,:); %1,2,6,5 fill3(face(:,1),face(:,2),face(:,3),r); a*is equal8图形的缩放变换function change3(S1,V1) S=0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 1; S(1,1)=S1(1); S(2,2)=S1(2); S(3,3)=S1(3); S %缩放 ALL=S %最后的变换矩阵 V2=ALL*V1; V=V2; V %变换后的图形矩阵,下面画图 face = V(1:4,:); %1,2,3,4 fill3(face(:,1),f

23、ace(:,2),face(:,3),r); hold on; face = V(5:8,:); %5,6,7,8 fill3(face(:,1),face(:,2),face(:,3),b); hold on; face = V(2:3,:); V(7,:);V(6,:) %2,3,7,6 fill3(face(:,1),face(:,2),face(:,3),g); hold on; face = V(1,:);V(4,:);V(8,:);V(5,:); %1,4,8,5 fill3(face(:,1),face(:,2),face(:,3),y); hold on; face = V(7:8,:); V(4,:);V(3,:) %4,3,7,8 fill3(face(:,1),face(:,2),face(:,3),b); hold on; face = V(1,:);V(2,:);V(6,:);V(5,:); %1,2,6,5 fill3(face(:,1),face(:,2),face(:,3),r); a*is equ. 优选-. -. 优选-

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!