150 likes | 226 Views
编程题没有答案, 请大家谅解。 有问题欢迎 email 讨论。. 练习题. 假设系统有一个 8 英寸 ×10 英寸、每英寸能显示 100 个象素的监视器。如果存储器的字长为一字节,起始帧缓存地址为 0 ,并且每个象素对应存储器的 1 个字节,那屏幕坐标 (x , y) 在帧缓存中的地址是什么 ? 按照长 8 宽 10 ,如图坐标系 地址为 800*y+x 一个四边形的四个顶点坐标依次为 (1,1) (3,1) (5,4) (3,6) 欲使用扫描线多边形填充算法对该四边形填充,请给出边表和 活动边表 内容。. 0. 799. 999. 边表. 11.
E N D
编程题没有答案, 请大家谅解。 有问题欢迎email讨论。
练习题 • 假设系统有一个8英寸×10英寸、每英寸能显示100个象素的监视器。如果存储器的字长为一字节,起始帧缓存地址为0,并且每个象素对应存储器的1个字节,那屏幕坐标(x,y)在帧缓存中的地址是什么? • 按照长8宽10,如图坐标系 • 地址为800*y+x • 一个四边形的四个顶点坐标依次为 (1,1) (3,1) (5,4) (3,6) 欲使用扫描线多边形填充算法对该四边形填充,请给出边表和活动边表内容。 0 799 999
边表 11 10 9 8 7 6 5 6 5 -1 4 3 2 2 2 4 3 6 1 1 5 3 0
活动边表-1 11 10 9 8 7 6 5 4 3 2 2 2 4 3 6 1 1 5 3 0
活动边表-2 11 10 9 8 7 6 5 4 3 2 2 2 2 4 3 6 1 2 5 3 5 3 1 0
活动边表-3 11 10 9 8 7 6 5 4 2 2 4 1 4 4 6 1 3 5 3 5 3 2 1 0
活动边表-4 11 10 9 8 7 6 5 2 1 6 5 -1 6 2 4 5 5 3 2 1 0
活动边表-5 11 10 9 8 7 6 2 3 6 4 -1 6 2 5 5 5 4 3 2 1 0
活动边表-6 11 10 9 8 7 2 6 3 -1 6 3 6 5 5 4 3 2 1 0
给出相对于任一线段p1(x1,y1)—p2(x2,y2) 的二维反射变换矩阵。 • 将线段一个端点平移到原点的变换矩阵M1 • 然后将线段旋转到和y轴或x轴重合的变换矩阵M2 • 相对于y或x轴的反射矩阵M • 答案:M1-1·M2-1·M·M2·M1 • 矩阵元素请自行计算
1 0 0 0 0 1 0 0 0 0 s 0 0 0 0 1 • 假设由方向角,和确定一个矢量方向,已知该方向上的缩放比例为S ,求三维缩放矩阵。 • 矩阵M1:绕x轴逆时针旋转angle1,使得矢量落在xoz平面 • cos(angle1)=cos /sin • sin(angle1)=cos /sin • 矩阵M2:再绕y轴旋转angle2( =90时不转,<90时逆时针,否则顺时针),使得矢量和z轴正向重合 • cos(angle2)=sin • sin(angle2)=cos • 沿z轴缩放s的矩阵M • 答案: M1-1·M2-1·M·M2·M1
给出将任意梯形变换成等腰梯形的变换矩阵。假设坐标系如图给出将任意梯形变换成等腰梯形的变换矩阵。假设坐标系如图 • 原梯形左下顶点移到坐标系原点 • 错切成等腰梯形 • X向比例变换使底边为a • y向比例变换使斜角为45 ° • 左下点移到原来位置 • 具体变换矩阵请自行计算 t y h b a b x (b>t) (b=45° )
1 0 -200 0 1 -300 0 0 1 1 0 0.1 0 1 0.1 0 0 1 0.6/300 0 0 0 0.3/500 0 0 0 1 1023 0 0 0 -767 767 0 0 1 T1= T3= T2= T2= 练习题 T2·T· (x,y,1)=(240,600) 自行解出(x,y)即可 • 自选编程:实现矩形窗口或多边形窗口删除功能。 • 设Window由 (200,300) 和 (500,800) 两点给出,Viewport 由 (0.1,0.1) 和 (0.7,0.4) 两点给出,屏幕分辨率为1024 x 768, 屏幕上(240,600) 对应于Window中哪一坐标位置的点? World Coordinate Normalized Device Coordinate Screen Coordinate 1023 T=T3·T2·T1 0 767
画一个五边形,再画五条Bezier曲线,它们两两相连在五个顶点处,且具C1连续性,请给出画法。画一个五边形,再画五条Bezier曲线,它们两两相连在五个顶点处,且具C1连续性,请给出画法。 • 如图。过每个顶点做红色线段。然后作连接它们的蓝色线段。最后以每两个顶点间的3条线(4个控制点)为依据,绘制5个3次Bezier曲线。 • 怎样画封闭的插值曲线? • 控制点序列中的起始点等于终止点
当仅使用单位立方体体素时,如何用CSG方法建立一个边长为a的正四面体的模型?当仅使用单位立方体体素时,如何用CSG方法建立一个边长为a的正四面体的模型? • 将a*a*a个单位立方体经过适当平移和并操作,构成边长为a的立方体。我们需要6个,假设为A1-A6 • 用A1做基准 • A2和A3分别经过适当平移后,被A1减去(用于切割掉图中上面和后面的两块长方体部分) • A4-A6分别经过适当平移和旋转后,被A1减去(用于切割掉四面体的左右前的三个斜面以外的部分) • 相应的平移、旋转的参数值请自行计算 • 也可以构造边长为 a的立方体, • 然后作四次布尔操作得到。但是边 • 长为1的立方体构造边长 a的立 • 方体过程中,除了布尔并和位移,还需要布尔减。并且仍需要构造边长为a的立方体用于后面的四次切割。最终运算量相当。