计算机图形学 图形几何变换的实现94429

计算机图形学 图形几何变换的实现94429

ID:35990824

大小:85.50 KB

页数:7页

时间:2019-04-29

计算机图形学  图形几何变换的实现94429_第1页
计算机图形学  图形几何变换的实现94429_第2页
计算机图形学  图形几何变换的实现94429_第3页
计算机图形学  图形几何变换的实现94429_第4页
计算机图形学  图形几何变换的实现94429_第5页
资源描述:

《计算机图形学 图形几何变换的实现94429》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验五图形几何变换的实现班级08信计2班学号88姓名许延恒分数一、实验目的和要求:1、掌握二维,三维图形基本变换(平移,缩放,对称,旋转,错切)的变换原理及数学公式2、利用TurboC实现二维,三维图形的基本变换和复合变换,并接在屏幕上显示变换过程或者变换结果。二、实验内容:1、利用二维变换矩阵实现平移变换2、三维几何变换中比例变换和旋转变换,分别绕Z,X,Y轴变换3、三维几何变换:相对于任意参考点和绕任意轴的三维旋转变换三、实验结果分析.1该算法实现了二维图形的转换和图形的放大。2通过图形变换,可以从简单图形到复杂图形,也可以从某个图形得到多个其他图形,从

2、而可使图形生成更加简单,减少数据输入。时某些系统的核心内容,也是其基础。程序代码/*三维图形(立方体)旋转变换、比例变换*/#include#include#include#include#include#include#defineZOOM_IN0.9#defineZOOM_OUT1.1intturn1[3];/*[0]rx,[1]ry,[3]zoom*/typedefstruct{floatx;floaty;floatz;}point;typed

3、efstruct{floatx;floaty;7}point2d;typedefstruct{floatx;floaty;floath;pointbiao[8];}fanti;voidmake_box(floatx,floaty,floath,fanti*p){p->x=x;p->y=y;p->h=h;p->biao[0].x=x/2;p->biao[0].y=y/2;p->biao[0].z=h/2;p->biao[1].x=-x/2;p->biao[1].y=y/2;p->biao[1].z=h/2;p->biao[2].x=-x/2;p->biao[2

4、].y=-y/2;p->biao[2].z=h/2;p->biao[3].x=x/2;p->biao[3].y=-y/2;p->biao[3].z=h/2;p->biao[4].x=x/2;p->biao[4].y=y/2;p->biao[4].z=-h/2;p->biao[5].x=-x/2;p->biao[5].y=y/2;p->biao[5].z=-h/2;p->biao[6].x=-x/2;p->biao[6].y=-y/2;p->biao[6].z=-h/2;p->biao[7].x=x/2;p->biao[7].y=-y/2;p->biao[7]

5、.z=-h/2;}voidtrun2d(point*p,point2d*q){q->x=p->x+p->z*cos(0.25);q->y=p->y+p->z*sin(0.25);}voidinitm(floatmat[][4]){intcount;for(count=0;count<4;count++){mat[count][0]=0.;mat[count][1]=0.;mat[count][2]=0.;mat[count][3]=0.;mat[count][count]=1.;}return;}voidtransfrom(point*p,point*q,f

6、loattm[][4]){floatxu,yv,zw,h;xu=tm[0][0]*p->x+tm[1][0]*p->y+tm[2][0]*p->z+tm[3][0];yv=tm[0][1]*p->x+tm[1][1]*p->y+tm[2][1]*p->z+tm[3][1];zw=tm[0][2]*p->x+tm[1][2]*p->y+tm[2][2]*p->z+tm[3][2];p->x=xu;p->y=yv;p->z=zw;return;7}voidrotationx(point*p,floatalfa,floattm[][4]){floatrad=0.0

7、174532925;initm(tm);tm[1][1]=cos(rad*alfa);tm[1][2]=sin(rad*alfa);tm[2][1]=-tm[1][2];tm[2][2]=tm[1][1];return;}voidrotationz(point*p,floatalfa,floattm[][4]){floatrad=0.0174532925;initm(tm);tm[0][0]=cos(rad*alfa);tm[0][1]=sin(rad*alfa);tm[1][0]=-tm[0][1];tm[1][1]=tm[0][0];return;}vo

8、idrotationy(point*p,floata

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。