三维实体在二维平面上问题探讨11111

三维实体在二维平面上问题探讨11111

ID:44813929

大小:161.50 KB

页数:20页

时间:2019-10-29

三维实体在二维平面上问题探讨11111_第1页
三维实体在二维平面上问题探讨11111_第2页
三维实体在二维平面上问题探讨11111_第3页
三维实体在二维平面上问题探讨11111_第4页
三维实体在二维平面上问题探讨11111_第5页
资源描述:

《三维实体在二维平面上问题探讨11111》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、三维空间实体在二维平面年的基本问题探讨试验名称:一、三维空间实体在二维平面上的投影,二、三维空间面实体在二维平面上的显示,三、三维空间实体如何实现自身的消隐,四、三维空间中多个综合实体之间的消隐,五、如何实现从不同角度观察三维实体。试验目的:理解在计算机图形学中如何实现三维图形的画法,掌握一些简单三维图形的绘制及其各种变换操作,理解在显示三维图形时需要用到隐藏面的消隐及掌握常见的隐藏面消隐算法,并试着实现三维综合画面中多个物体之间的简单消隐和它们的布局,实现三维物体的一些常见功能(如:物体的变换,从不同的角度观察物体,从不同的距离观察物体,选者不同的观察中心观察三维物体等)。

2、试验内容:(一)、三维空间实体在二维平面上的投影1、算法原理:无论是显示器还是纸,它们都是二维的,如何将三维物体(图形)在二维的显示设备上显示出来呢?为了解决这个问题,这里借鉴了照相机的成像过程,即三维物体在二维上胶卷上的投影,投影分为平行投影与透视投影两种。一、平行投影,在这里我先作一个假设,即假设我的投影面是垂直于Z轴的,这样以来平行投影变的非常简单,一个三维点P(x,y,z)在垂直于Z轴的平面内的投影点就为Q(x,y),因为我的观察方向平行于Z轴,所以Z轴上的坐标值在投影面内反映不出来。当然我这里的平行投影是正投影,暂不考虑斜投影。二、透视投影,这里我仍然沿用上面的假设

3、,并且观察点在Z轴上,距离为d,由三角形相似知:三维空间点P(x,y,z),到二维平面点的投影点为:Q(x1,y1),其中x1=d×x/(d–z),y1=d×y/(d–z)。但实际问题并不象我假设的那样简单,即都从Z轴的方向去观察物体,不过也复杂不了多少。比如我从(qx,qy,qz)这样一个方向角去观察物体,其中qx,qy,qz分别代表我的视线与x轴,y轴及z轴所成的角度。这时我只需在投影前对坐标系进行适当的旋转,使旋转后新坐标系仍然满足我上面的假设,即Z轴平行于我的视线,这样不也就将问题转化了,这里再假设此时已经有一个坐标系的旋转函数,至于怎样旋转坐标系待后再叙。2、程序:

4、voidPoint3D_2D(int*x,int*y,int*z,floatqx,floatqy,floatqz)/*投影方向为{(qx,qy,qz)*/XuanZhuan3D_ZBX(x,y,z,qx,1);/*坐标系的旋转函数*/XuanZhuan3D_ZBX(x,y,z,qz,3);*x=*x;*y=*y;/*平行投影*/}voidPoint3D_2D(int*x,int*y,int*z,intd,floatqx,floatqy,floatqz)/*投影方向为{(qx,qy,qz)*/20XuanZhuan3D_ZBX(x,y,z,qx,1);/*坐标系的旋转函数*/X

5、uanZhuan3D_ZBX(x,y,z,qz,3);*x=d×(*x)/(d-*z);*y=d×(*y)/(d-*z);/*透视投影*/}这里给出一个画正方体线框图的程序算法过程:先找到正方体八个顶点在投影面的投影点,然后再在投影面中按照正方体的连线将八个顶点用直线连接起来即可。/***********************//*正方体线框图的算法*//***********************/voidZft3D(Point3DA,intr,intcolor,floatqx,floatqy,floatqz)/*观察方向为(qx,qy,qz)*/{intx,y,z,X

6、,Y,Z;Point3DB1,B2,B3,B4,B5,B6,B7,B8;PointA1,A2,A3,A4,A5,A6,A7,A8;x=A.x;y=A.y;z=A.z;B1.x=x+r/2.0;B1.y=y-r/2.0;B1.z=z-r/2.0;B2.x=x+r/2.0;B2.y=y+r/2.0;B2.z=z-r/2.0;B3.x=x-r/2.0;B3.y=y+r/2.0;B3.z=z-r/2.0;B4.x=x-r/2.0;B4.y=y-r/2.0;B4.z=z-r/2.0;B5.x=x+r/2.0;B5.y=y-r/2.0;B5.z=z+r/2.0;B6.x=x+r/2.0;

7、B6.y=y+r/2.0;B6.z=z+r/2.0;B7.x=x-r/2.0;B7.y=y+r/2.0;B7.z=z+r/2.0;B8.x=x-r/2.0;B8.y=y-r/2.0;B8.z=z+r/2.0;X=B1.x;Y=B1.y;Z=B1.z;Point3D_2D(&X,&Y,&Z,qx,qy,qz);A1.x=X;A1.y=Y;putpixel(X,Y,color);X=B2.x;Y=B2.y;Z=B2.z;Point3D_2D(&X,&Y,&Z,qx,qy,qz);A2.x=X;A2.y=Y;

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

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

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