您好,欢迎访问三七文档
1湖南科技大学课程教案(章节、专题首页)授课教师:王志喜职称:副教授单位:计算机学院课程名称计算机图形图像技术章节、专题习题选讲教学目标及基本要求教学重点教学难点教学内容与时间分配习题2习题选讲4二维图形变换6、已知旋转角为,缩放系数均为s,旋转中心和固定点位置均为00(,)xy,请构造该带缩放的旋转变换的变换矩阵(OpenCV中的函数cv2DRotationMatrix()就是用来计算这个变换矩阵的)。①使旋转中心和固定点与原点重合:100(,)TTxy②绕原点旋转:()RR③以原点为固定点缩放:(,)SSss。④使旋转中心和固定点回到原处:200(,)TTxy完整变换:321000000001000cossin0100100sincos001001001001001cossin(1-cos)sinsincos-sin(1-MTSRTxsxysyssxsysssxsyscos)00147、确定反射轴为直线3/4yx的反射变换矩阵的形式。显然,反射轴通过原点且方向为(4,3)。(1)使反射轴与x轴重合:1M1(4,3),(3,4),(0.8,0.6),(0.6,0.8),0.80.600.60.80001UVuvM(2)相对于x轴反射:100010001xF(3)使反射轴回到原处:2M511210.80.600.80.600.60.800.60.80001001MM完整变换210.80.601000.80.600.60.800100.60.800010010010.280.9600.960.280001xMMFM612、已知旋转角为60,基准点位置为(1,2),请构造该旋转变换的变换矩阵M,结果至少保留3位小数(也可使用无理数)。(1)使基准点与原点重合:1(1,2)TT(2)绕原点旋转:(60)RR(3)使基准点回到原处:2(1,2)TT完整变换21101cos60sin600101012012sin60cos6000010010010.50.8662.23210.8660.50.134001MTRT713、在如图所示的方向上,用1s和2s作为缩放系数,请构造完成这种缩放的变换矩阵,其中固定点为原点,12s,23s,且方向1s上两点的坐标分别为(2,1)和(6,4)。(1)旋转使1s和2s的方向分别与x和y轴重合:1R将1s的方向(62,4(1))(4,3)单位化,得(0.8,0.6)u;令(0.6,0.8)v,从而0.80.600.60.80001R8(2)缩放:(2,3)SS(3)反向旋转使1s和2s的方向回到原始位置:121RR完整变换210.80.602000.80.600.60.800300.60.800010010012.360.4800.482.640001MRSR914、已知窗口为(0,0)(10,10),视区为(1,1)(6,6),要将窗口中位于(,)wwxy的点映像到视区中坐标为(,)vvxy的点,请构造变换公式和变换矩阵。为了使视区与窗口中的对象有同样的相对位置,必须满足10611001061100vwvwxxyy从而,得到如下变换公式和变换矩阵0.510.51vwvwxxyy,0.50100.51001105三维图形变换6、已知在原坐标系中某个平面的方程为34100xy,试求变换矩阵M,使该平面方程在新坐标系下变成0z。其中,新坐标系的y方向为(4,3,0),且新坐标系的原点(2,1,0)在该平面上。平面法向量在原坐标系中的坐标为(3,4,0),而在新坐标系中的坐标为(0,0,1),所以(3,4,0)是新坐标系的z方向。由新坐标系的y和z方向可计算出新坐标系的x方向。①使新原点与旧原点重合:(2,1,0)TT②使新坐标轴与旧坐标轴重合:R新y方向:(4,3,0)V新z方向:(3,4,0)N新x方向:(0,0,25)UVN11将U、V、N单位化,得/||(0,0,1)/||(0.8,0.6,0)/||(0.6,0.8,0)uUUvVVnNN从而00100.80.6000.60.8000001R完整变换1200100.80.6000.60.800000100100.80.6010.61002010100100000.80200101MRT137、已知旋转轴为AB,其中(0,0,0)A,(3,4,0)B,请构造绕AB旋转90度的旋转变换。(1)使旋转轴与z轴重合:R将(3,4,0)AB单位化,得/||(0.6,0.8,0)nABAB令(1,0,0)xu/||(0.6,0.8,0)(1,0,0)/|(0.6,0.8,0)(1,0,0)|(0,0,1)(0,0,1)(0.6,0.8,0)(0.8,0.6,0)xxvnunuuvn则0.80.60000100.60.8000001R14(2)绕坐标轴(z轴)完成指定的旋转:()zR(3)使旋转轴回到原来的方向:1R完整变换1(90)0.80.60001000.80.6000010100000100.60.80000100.60.8000001000100010.360.480.800.480.64100.80.6000zMRRR0011510、已知投影向量为(3,4,1)V,投影面为xy平面,请根据定义计算该平行投影的变换矩阵。由(',',0)(3,4,1)xxyyzu可得'3'40xxuyyuzu由0zu得uz。于是得到该平行影变换的方程为'3'4xxzyyz原始z坐标作为深度信息保存。从而,变换矩阵为161030014000100001M1711、求经过平行投影变换后点(1,2,3)P的坐标。已知:观察面为4z,投影向量为(1,1,1)。由('1,'2,43)(1,1,1)xyu可得'1'243xuyuu由43u得7u。于是得到'176'275xy所以经过平行投影变换后点(1,2,3)P的坐标为(6,5,3)(答(6,5)也可以)。1812、求经过透视投影变换后点(1,2,3)P的坐标。已知:观察面为4z,投影中心为(0,0,0)。由('1,'2,43)(01,02,03)xyu可得'1'2273xuyuu由73u可得7/3u。于是得到74'13378'2332xy所以经过透视投影变换后点(1,2,3)P的坐标为(4/3,8/3)(答(4/3,8/3,4)或(4/3,8/3,3)也可以)。1913、已知投影中心为原点,投影面为1z,请根据定义计算该透视投影的变换矩阵。由(',',1)(0,0,0)xxyyzuxyz可得''1xxxuyyyuzzu由1zzu可得(1)/uzz。于是得到透视变换方程11'11'zxxxxzzzyyyyzz选取hz,可得使用齐次坐标的变换方程为20'''hhhxxhxyyhyzzhzhz由该变换方程可得透视变换的变换矩阵为pers1000010000100010M216OpenGL图形变换4、请使用OpenGL、GLU和GLUT编写一个简单的多视口演示程序。要求:在屏幕窗口左下角的1/4部分显示一个红色的填充正三角形;在屏幕窗口右上角的1/4部分显示一个绿色的填充正方形;三角形和正方形的左下角顶点坐标值均为(0,0),右下角顶点坐标值均为(1,0);裁剪窗口均为(-0.1,-0.1)~(1.1,1.1);程序窗口的大小为(200,200),标题为“多视口演示”。22#includegl/glut.hvoidViewport(intx,inty,intw,inth){glViewport(x,y,w,h);glLoadIdentity();gluOrtho2D(-0.1,1.1,-0.1,1.1);}voidTriangle(){glBegin(GL_TRIANGLES);glVertex2d(0,0);glVertex2d(1,0);glVertex2d(0.5,0.8660);glEnd();}voidPaint(){intw=glutGet(GLUT_WINDOW_WIDTH)/2;inth=glutGet(GLUT_WINDOW_HEIGHT)/2;glClear(GL_COLOR_BUFFER_BIT);Viewport(0,0,w,h);glColor3f(1,0,0);Triangle();Viewport(w,h,w,h);glColor3f(0,1,0);glRectd(0,0,1,1);glFlush();}intmain(){glutInitWindowSize(200,200);glutCreateWindow(多视口演示);glutDisplayFunc(Paint);glutMainLoop();}235、请使用OpenGL和GLUT编写一个显示线框椭球体的简单图形程序。其中椭球体的两极方向为上下方向,左右方向的半径为0.98,上下方向的半径为0.49,前后方向的半径为0.6,经线数为48,纬线数为24,使用正投影,裁剪窗口为(-1,-0.5)~(1,0.5),程序窗口的大小为(400,200),标题为“线框椭球
本文标题:习题选讲
链接地址:https://www.777doc.com/doc-5404536 .html