资源描述:
《图形学3d图形渲染实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、图形学3D图形渲染实验报告功能:实现母线为Bezier曲线的旋转集合体,两个光源,基于扫描线z缓冲算法的3D图形渲染。程序结构:Csrgp类:srgp类为一个二维光栅软件包,实现了基本的二维图形的绘制能力(点,直线,圆,多边形,扫描转换多边形)并实现了双缓冲技术(内存缓冲技术)。在此基础上,添加了扫描线z缓冲算法的三维集合体的渲染。Csrgp类声明如下:public:HDCm_hdc;DWORDm_iColor;POINTm_Oring;HDCm_memHdc;double**Z_Buf;boolm_onMemery;intm_Umin,m_Vmin,m_Eu,
2、m_Ev;//设备坐标系视区doublem_VCUmin,m_VCUmax,m_VCVmin,m_VCVmax;//观察坐标系uv平面窗口doublem_Fdistance,m_Bdistance;//前后裁减面,在观察坐标系中指定Vector3dm_VRP;//观察参考点Vector3dm_VPN;//观察坐标系法向Vector3dm_VUP;//观察正向Vector3dm_PRP;//投影参考点,在观察坐标系中指定Vector3dm_VrcU,m_VrcV,m_VrcN;//观察坐标系intwidth;inthigh;doublem_Xmin,m_Ymin,
3、m_Ex,m_Ey,m_a;//0-2//设备坐标系视区Vector3dm_MatrixWindows2Device[3];Vector4dm_MatrixWorldCoord2VRC[4];Vector4dm_Npar[4];//平行投影视见体规范化变换Vector4dm_Nper[4];//透视投影视见体规范化变换Vector4dm_Npar2per[4];//透视投影到平行投影视见体Vector4dm_FinalMatrix[4];//最终投影变换矩阵Vector4dm_MatrixLocal2WorldCoord[4];//局部坐标系到世界坐标系变换bo
4、olm_FinalMatrixInvalidly;//////////////////////////////////Vector3dL1,L2;//两个点光源位置,世界坐标系中Vector3dIa;//环境光强Vector3dI1;//点光源1强度Vector3dI2;//点光源强度doubleIc;//亮度控制doubleC0,C1,C2;//衰减控制doublem_maxI;//最大光强度////////////////////////////Operationspublic:voidPutPixel(intx,inty);voidPutPixel(int
5、x,inty,DWORDcolor);voidDrawOnMemery(boolonMemery=true);voidLineCoord(intx0,inty0,intx1,inty1);voidCirclePoints(intx,inty,intoffsetX,intoffsetY);voidCircleCoord(intoffsetX,intoffsetY,intradius);DWORDGetColor();voidSetColor(DWORDcolor);voidDraw();voidFillPolygon(constCPolygon&);voidLin
6、eCoord3D(Vector3d,Vector3d);voidDisplayParametricPolynomialCurve(Vector3dPG[],doubleM[MAX][MAX],intn,intcount);voidDisplayCubicHemiteCurve(Vector3dP[2],Vector3dPR[2],intcount);voidDisplayBezierCurve(Vector3dP[],intn,doubleDELTA);voidWindows2Device(Vector3dP);voidWorldCoord2VRC(Vector
7、3dP);voidSetDeviceViewArea(intUmin,intVmin,intEu,intEv);voidSetWindow(doubleXmin,doubleYmin,doubleEx,doubleEy,doublea);voidSetVRC(Vector3dVRP,Vector3dVPN,Vector3dVUP);voidSetVRP(Vector3dVRP);voidSetVPN(Vector3dVPN);voidSetVUP(Vector3dVUP);voidSetViewCoordCwindow(doubleumin,doubleumax
8、,doublevmin,