Fi≥0: X方向走一步 i+1点坐标: Xi+1=Xi-1,Yi+1=Yi
Fi?1?Yi?1XA?Xi?1YA?YiXA?Xi?1YA
∵第Ⅱ象限,Xi<=0,YA>0,??Xi-1?=? XA?+1, ?YA?= Y Fi?1?YiXA?XiYA?YA?Fi?YA
Fi<0: Y方向走一步 i+1点坐标: Xi+1=Xi,Yi+1=Yi+1
Fi?1?Yi?1XA?Xi?1YA?Yi?1XA?XiYA
∵第Ⅱ象限,Xi<0,YA>0,??Yi-1?=? Yi?+1, ?XA?= XA Fi?1?YiXA?XiYA?XA?Fi?XA 得:
(1)Fi?0时,
?Xi?1?Xi?1?Yi?Yi(1)Fi?0时,? ?F?i?1?Fi?YA?Xi?1?Xi??Yi?Yi?1 ?F?F?XiA?i?16、图中ABCD为矩形窗口,P1P2为待裁剪线段。试用中点分割法求出P1的最远可见
点,当线段长度≤0.5时算法结束。
已知窗口及线段的坐标分别为A(0,0)、B(0,6)、C(10,6)、D(10,0),P1(-1,10)、P2(11,0)。
解:
设P1P2的中点为P12(x1,y1)
x1=(-1+11)/2=5, y1=(11+0)/2=5
P1 因为P12 P2不是完全不可见,故对P12 P2作进一步处理
设P12 P2的中点为P22(x2,y2) x2=(5+11)/2=8, y2=(5+0)/2=2.5
因为P22 P2不是完全不可见,故对P22 P2作进一步处理
设P22 P2的中点为P32(x3,y3)
x3=(8+11)/2=9.5, y3=(2.5+0)/2=1.25
因为P32 P2不是完全不可见,故对P32 P2
P2 作进一步处理
设P32 P2的中点为P42(x4,y4)
x4=(9.5+11)/2=10.25, y4=(1.25+0)/2=1.125 因为P42 P2是完全不可见,故对作进一步处理 设P32P42的中点为P52(x5,y5)
x5=(9.5+10.25)/2=9.875, y5=(1.25+1.125)/2=1.1875
P24P25?P25P23?(X5?X3)2?(Y5?Y3)2?(9.875?9.5)2?(1.1875?1.25)2?0.380172?0.5
所以P1的最远可见点为P52(9.875,1.1875)
7、已知三角形ABC各顶点的坐标A(1,2)、B(5,2)、C(3,5),相对直线Y=4做对称变换后到达A’、B’、C’。
试计算A’、B’、C’的坐标值。(要求用齐次坐标进行变换,列出变换矩阵) 解:
(1)将坐标系平移至P1 (0,4)点
?100???TA??010???0?41??
(2) 以X轴对称
?100???TB??0?10?
??001??
(3)将坐标系平移回原处
?100???TC??010???041??
(4)
?100??变换矩阵:T=TA*TB*TC= ??0?10?
??081??
(5) 求变换后的三角形ABC各顶点的坐标A’、B’、C’ A’: ?X'AY'A?100???1???121??T??121???0?10???161?
??081??XA'=1, Y A'=6 B’: ?X'BYB1???5?100???21??T??521???0?10???561???081??
XB'=5, Y B'=6 C’: ?X'CY'C?100???1???351??T??351???0?10???331?
??081??XA'=3, Y A'=3
8、设窗口左下角点坐标为(XW1,YW1),宽为LW,高为HW,视区左下角点坐标为(XV1,YV1),宽为LV,高为HV,已知窗口中有一点A(XA,YA),在视区中对应的坐标为A’(X’A,Y’A)。试计算A’的坐标值。(要求用齐次坐标进行变换,列出变换矩阵,列出计算式子,不要求计算
A θo (XW1,YW1)
(XV1,YV1)