图形学3D图形渲染实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
** ** 图形学3D图形渲染实验报告 功能: 实现母线为Bezier曲线的旋转集合体,两个光源,基于扫描线z缓冲算法的3D图形渲染。 程序结构: Csrgp类: srgp类为一个二维光栅软件包,实现了基本的二维图形的绘制能力(点,直线,圆,多边形,扫描转换多边形)并实现了双缓冲技术(内存缓冲技术)。在此基础上,添加了扫描线z缓冲算法的三维集合体的渲染。 Csrgp类声明如下: public: HDC m_hdc; DWORD m_iColor; POINT m_Oring; HDC m_memHdc; double **Z_Buf; bool m_onMemery; int m_Umin, m_Vmin, m_Eu, m_Ev;//设备坐标系视区 double m_VCUmin, m_VCUmax, m_VCVmin, m_VCVmax;//观察坐标系uv平面窗口 double m_Fdistance, m_Bdistance;//前后裁减面,在观察坐标系中指定 Vector3d m_VRP;//观察参考点 Vector3d m_VPN;//观察坐标系法向 Vector3d m_VUP;//观察正向 Vector3d m_PRP;//投影参考点,在观察坐标系中指定 Vector3d m_VrcU, m_VrcV, m_VrcN;//观察坐标系 int width ; int high ; double m_Xmin, m_Ymin, m_Ex, m_Ey, m_a;//0-2//设备坐标系视区 Vector3d m_MatrixWindows2Device[3]; Vector4d m_MatrixWorldCoord2VRC[4]; Vector4d m_Npar[4];//平行投影视见体规范化变换 Vector4d m_Nper[4];//透视投影视见体规范化变换 Vector4d m_Npar2per[4];//透视投影到平行投影视见体 Vector4d m_FinalMatrix[4];//最终投影变换矩阵 Vector4d m_MatrixLocal2WorldCoord[4];//局部坐标系到世界坐标系变换 bool m_FinalMatrixInvalidly; ////////////////////////////////// Vector3d L1, L2;//两个点光源位置,世界坐标系中 Vector3d Ia;//环境光强 Vector3d I1;//点光源1强度 Vector3d I2;//点光源强度 double Ic;//亮度控制 double C0, C1, C2;//衰减控制 double m_maxI;//最大光强度 ////////////////////////// // Operations public: void PutPixel(int x, int y); void PutPixel(int x, int y, DWORD color); void DrawOnMemery(bool onMemery = true); void LineCoord(int x0, int y0, int x1, int y1); void CirclePoints(int x, int y, int offsetX, int offsetY); void CircleCoord(int offsetX, int offsetY, int radius); DWORD GetColor(); void SetColor(DWORD color); void Draw (); void FillPolygon(const CPolygon ); void LineCoord3D(Vector3d, Vector3d); void DisplayParametricPolynomialCurve(Vector3d PG[],double M[MAX][MAX], int n, int count); void DisplayCubicHemiteCurve(Vector3d P[2], Vector3d PR[2], int count); void DisplayBezierCurve(Vector3d P[], int n, double DELTA); void Windows2Device(Vector3d P); void WorldCoord2VRC(Vector3d P); void SetDeviceViewArea(int Umin, int Vmin, int

文档评论(0)

5566www + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6122115144000002

1亿VIP精品文档

相关文档