3.写出直线方程
y'?mx'?b对应的xy坐标方程,假设x'y'坐标系是由xy坐标系旋转90°得到。
解答:旋转坐标变换方程可以写成:
x'?xcos90??ysin90??y',
代入原方程式得到?
y'??xsin90??ycos90???x
x?my?b,写成y的方程式,得y?(?1/m)/x?b/m
4.使用斜截式方程画斜率介于0°和45°之间的直线的步骤是什么? 解答:用斜截式方程画直线的过程如下: (1) (2) (3) (4) (5)
计算dx:dx=x2-x1。 计算dy:dy=y2-y1。 计算m:m=dy/dx。 计算b: b=y1-m×x1
设置左下方的端点坐标为(x,y),同时将xend设为x的最大值。如果dx < 0,则x=x2、y=y2和xend=x1。如果
dx > 0,那么x=x1、y=y1和xend=x2。 (6) (7) (8) (9)
测试整条线是否已经画完,如果x > xend就停止。 在当前的(x,y)坐标画一个点。 增加x:x=x+1。
根据方程y=mx+b计算下一个y值。 转到步骤(6)。
5.写出从P(b)水平线y=b的交点。 1(x1,y1)到P2(x2,y2)的段与(a)垂直线x=a,解答:线段的参数方程为:
?x?x1?t(x2?x1) ?y?y?t(y?y)121?
0?t?1
(a)
和
因为
x?a,将它代入方程t?(a?x1)(x2?x1)得到。然后把此值再代入方程,则交点是xI?a?a?x1?yI?y1???x?x???y2?y1?
?21?(b)
和
因为
y?b,将它代入方程t?(b?y1)(y2?y1)得到。然后把此值再代入方程,则交点是yI?b?a?y1?xI?x1???y?y???x2?x1?
1??26.使用Bresenham算法画斜率介于0°和45°之间的直线所需的步骤。 解答:用Bresenham算法画直线的过程如下: (1)计算初始值
- 5 -
dx = x2-x1 dy = y2-y1 Inc1 = 2dy
Inc2 = 2(dy-dx) d = Inc1 - dx
(2)设置左下方的端点坐标为(x,y),同时将xend设为x的最大值。如果dx < 0,则x=x2,y=y2和xend=x1。如果dx >
0, 那么x=x1、y=y1和xend=x2。 (3) (4) (5) 在当前的(x,y)坐标画一个点。
判断整条线段是否已经画完,如果x=xend就停止。
计算下一像素的位置。如果d<0,那么d=d+Inc1。如果d≥0,那么d=d + Inc2,并且y=y+1。 (6) 增加x:x=x+1。
(7) 在当前的(x,y)坐标画一个点。 (8) 转到步骤(4)。
- 6 -
相关推荐: