BÀI TẬP ĐỒ HOẠ MÁY TÍNH
Đà nẵng, 09/05/2023
2.1. Bài tập tính toán đồ hoạ máy tính:
x y z
a a a
21 01 57
x y z
b b b
23 03 55
x y z
c c c
33 09 59
x y z
D D D
35 15 65
1) Cho hai điểm A (xa, ya), B (xb, yb). Tìm phương trình của đường thẳng đi qua 2
điểm AB. Tự chọn các tọa độ cụ thể.
Cho A (21, 1); B (23, 3)
= (2, 2) -> vecto pháp tuyến = (-2, 2)
-> Phương trình của đường thẳng cần tìm là:
(AB): -2x + 2y + c = 0 đi qua A (21,1)
->(AB): -2x+2y+40 = 0
2) Cho ba điểm A (xa, ya), B (xb, yb), C (xc, yc). Tự chọn các giá trị và tìm phương
trình đường tròn đi qua 3 điểm này.
Cho A (21, 1); B (23, 3),C(33,9).
Gọi I là tâm đường tròn ngoại tiếp tam giác ABC
Gọi M (22, 2) là trung điểm AB
Gọi N (27, 5) là trung điểm AC
Gọi d1 là đường trung trực của AB-> = (2, 2) là vecto pháp tuyến của d1
Gọi d2 là đường trung trực của AC -> = (12, 8) là vecto pháp tuyến của d2
d1: 2x +2y +c = 0 qua M (22, 2) -> d1: 2x+2y-48 = 0 (1)
d2: 12x + 8y+c = 0 qua N (27, 5) -> d2: 12x+8y-364 = 0 (2)
Từ (1) và (2) -> -> -> I (43, -19)
R = IA = =
2
->(I): (x−43) + (y+19) = 884
2 2
3) Cho tam giác ABC với A (xa, ya), B xb, yb), C (xc, yc). Tự chọn các giá trị và xác
định tâm đường tròn ngoại tiếp, tâm đường tròn nội tiếp, giao điểm 3 đường cao,
giao điểm 3 đường trung tuyến, giao điểm 3 đường phân giác.
Cho A (21, 1); B (23, 3),C(33,9).
+ Tâm đường tròn ngoại tiếp
Gọi I là tâm đường tròn ngoại tiếp tam giác ABC
Gọi M (28, 6) là trung điểm BC
Gọi N (27,5) là trung điểm AC
Gọi d1 là đường trung trực BC -> VTPT: = (, 6)
Gọi d2 là đường trung trực AC -> VTPT: = (12, 8)
->d1 = 10x +6y+ c = 0 qua M -> d1: 10x += 0 (1)
d2 = 12x +8y + c = 0 qua N -> d2: 12x +8y -364= 0 (2)
Từ (1), (2) -> -> I ()
+ Tâm đường tròn nội tiếp và giao điểm 3 đường phân giác
AB = , AC =
Gọi AD là đường phân giác góc BAC, D BC, D (x, y)
= -> = .
-> -> -> D (24.64, 3.98)
Gọi J là tâm đường trong nội tiếp tam giác ABC
->J AD, BJ là phân giác góc ABC, J (x, y)
= (1.64, 0.98) -> BD =
Ta có: = -> = . -> = -5
-> -> -> J (24.03)
+ Giao điểm 3 đường cao
Gọi d1: qua A và vuông góc với BC
3
-> d1 = 10x +6y+ c = 0 qua A -> d1: 10x +6y-216 =0 (1)
Gọi d2: qua B và vuông góc AC
->d2 = 12x +8y + c = 0 qua B -> d2: 12x +8y -300 = 0 (2)
Gọi H là trực tâm tam giác ABC
Từ (1), (2) -> ->
->H (-9, 51)
+ Giao điểm 3 đường trung tuyến
Gọi G là trọng tâm tam giác ABC
x
G
= = , y =13/3= -> G (,13/3)
G
4) Cho hai đường thẳng AB, CD cắt nhau, có A (xa, ya), B (xb, yb), C (xc, yc), D (xd,
yd). Xác định giao điểm nếu có của hai đường thẳng này.
Cho A (21, 1); B (23, 3),C(33,9),D(35,15).
= (2, 2) -> = (-2, 2)
= (2, 6) -> = (-6,2)
->(AB): -2x+2y+c = 0 qua B -> (AB): -2x+2y+40 = 0 (1)
->(AC): -6x +2y+ c = 0 qua C -> (AC): -6x +2y+36 = 0 (2)
Từ (1), (2) -> ->
-> Có giao điểm tại toạ độ có x = -1, y = -21
5) Cho đường tròn tâm O (xc, yc), bán kính R và điểm P (x, y) ngoài đường tròn.
Xác định khoảng cách ngắn nhất giữa P và đường tròn.
Cho O (33,9), R = 2, P (36, 13)
->PO = = 5
Khoảng cách ngắn nhất: PO – R = 5 – 2 = 3
6) Cho đường thẳng AB có A (xa, ya, za), B (xb, yb, zb). Tìm khoảng cách từ điểm
P (xc, yc, zc) đến đoạn thẳng AB.
A (21,1,57), B (23,3,55) -> = (2,2,-2)
(AB)
4
P (33,9,59)
Gọi H là hình chiếu từ P lên AB, H AB
->H (21+2t, 1+2t, 57-2t)
= (2t-12, 2t-8, -2t-2)
. = 0 -> t -2 + t-3 + t-4 = 0 -> t = 11.54
->H (44.08,24.08,33.92)
PH = = 33.29
7),8),10)
Cho A (21,1,57), B (23,3,55), C (33,9,59)
= (2,2,-2), = (12, 8,2)
Vecto pháp tuyến: = , ]= (20, -28, -8)
->(ABC): 20x-28y-8z +d = 0 qua A
->(ABC): 20x-28y-8z -64 = 0
Cho P (35,15,65)
Khoảng cách từ P đến mặt phẳng (ABC)
d
P/(ABC)
= =
9) Cho vector v(xa, ya, za). Viết công thức chuẩn hóa vector v để có chiều dài đơn vị
(= 1)
_ Cho v(21, 1, 57), |v| = = là độ dài vecto v
Chuẩn hoá: = = ( , , )
Code:
Struct Vector {float x,y,z;}
Vector ChuanHoa (Vector a){
float c = sqrt (pow (a.x,2) + pow (a.y,2) + pow (a.z,2));
Vector b;
b.x = a.x/c;
5
b.y = a.y/c;
b.z = a.z/c;
return b;
}
6
2.2. Bài tập các phép biến đổi đồ họa
1) Model Transformation
P
obj
= ( 21, 1, 57, 1 )
Phép tịnh tiến: theo vecto T(d , d , d ) = (1,4,6)
x y z
M
T
= =
Phép quay 1 trục (u , u , u )= (1,2,3) một góc 45 trong không gian 3D :
x y z
[M
R
]
u
=
c= cos α , S=sin α
[M
R
]
u
=
Ma trận biến đổi: M = M . [M =
T R
]
u
=>P
world
= M.P =
obj
2) View Transformation
e(4,4,4) , c(0,1,4), up(0,1,0)
n= = = ()
u= = (0,0,-1)
v= u.n = ()
M
view
= . =
P
cam
= M . P = . =
view world
3) Projection Transformation
M
Proj
= =
= > P =M . P =
proj proj cam
4) Normalized Device Coordinate
P
ndc
= =
5) ViewPort Transformation
M
1
=
Ma trận Viewport
M
2
=
7
= > P = M = => P = ( 45.3645 ; 50.0116 )
screen 2
.P
ndc screen
2.3. Bài tập đường, mặt cong tham số:
Mã SV thứ nhất u
102210157 0.57
1) Cho đường cong Bézier có n + 1 = 4 đỉnh điều khiển P0 = (10, 0), P1 = (20, 30),
P2= (50, 40), P3 = (80, 0). Tính tọa độ (Cx, Cy) của một điểm C(u) trên đường cong
ứngvới tham số u [0, 1].
Xét đường cong Bézier có n + 1 = 4 đỉnh điều khiển P0, P1, P2, P3:
Phương trình của đường cong như sau
C(u) = (1-u) + 3u(1-u) + 3u + u
3
P
0
2
P
1
2
(1-u)P
2
3
P
3
Với u = 0.57, ta được:
C (0.57) = (1-0.57) x (10, 0) + 3x0.57(1-0.57) x(20, 30) + 3x0.57 (1-0.57)x(50,
3 2 2
40) +0.57 x(80,0)
3
= (42.89014, 26.25021)
->C (x, y) = (42.89014, 26.25021)
2) Cho đường cong B-spline đồng nhất (uniform) có n + 1 = 4 đỉnh điều khiển P0 =
(0, 10), P1 = (10, 40), P2 = (40, 40), P3 = (50, 0) có bậc p =3. Tính tọa độ (Cx, Cy) của
điểm C(u) trên đường cong ứng với tham số tự chọn u [0, 1]
Phương trình biểu diễn đường cong B-spline bậc 3 (p = 3) đồng nhất có 4 đỉnh
điều khiển P0, P1, P2, P3:
C(u)=
C(u)= N + N + N + N
0,3
(u)P
0 1,3
(u)P
1 2,3
(u)P
2 3,3
(u)P
3
Với các hàm cơ sở N (u) được xác định (u = 0.57):
i,3
N
0,3
(u) = (1-u) = 0.01325
3
N
1,3
(u) = (3u -6u + 4) = 0.43436
3 2
8
N
2,3
(u) = (-3u + 1) = 0.23652
3
+3u
2
N
3,3
(u) = u = 0.03087
3
->C(u) = 0.01325x(0, 10) + 0.43436x(10, 40) + 0.23652 x(40, 40) + 0.03087 x
(50, 0)
= (15.3479,26.9677)
->C (x, y) = (15.3479,26.9677)
3) Cho đường cong B-spline không đồng nhất có n + 1 = 4 đỉnh điều khiển P0 =
(10,0), P1 = (20, 30), P2 = (50, 40), P3 = (80, 0), bậc p = 2, vector nút U = {0, 0, 0,
0.5,1, 1, 1}.Tính tọa độ (Cx, Cy) của điểm C(u) trên đường cong ứng với tham số u
[0, 1].
Triển khai phương trình đường cong B-spline:
C(u)=
C(u) = N + N + N + N
0,2
(u)P
0 1,2
(u)P
1 2,2
(u)P
2 3,2
(u)P (1)
3
Với k = 2, i = 0... (3+2-2), u = 0.57
N
0,2
(u) == 0.0196 (2)
N
1,2
(u) = = 0.3306 (3)
N
2,2
(u) = =0.6498, u [u , u ) (4)
2 3
N
3,2
(u) = 0, u [u , u ) (5)
2 3
Từ (1), (2), (3), (4), (5), ta được:
C(u) = 0.0196x (10, 0) + 0.3306 x (20, 30) + 0.6498 x (50, 40) = (39.298,35.91)
->C(x, y) = (39.298,35.91)
2.4. Bài tập thuật toán cơ bản vẽ đường
1) A(21;1) và B(25;9)
Ta có x=4, y=8. Hệ số góc m=2, p= 2 y. Ta có bảng: x-
k p
k
= p Kiểm tra p Tính toán (x
k-1 k k
,y )
k
9
0 p= (2*dx)-dy 21;1
1 0 p>=0 x1 =x1+1
y1 = y1+1
p= p+(2*dx)-(2*dy)
22;2
2 -8 p<0 x2 = x2
y2 = y2+1
P = p+2*dx
22;3
3 0 p>=0 x3 =x3+1
y3 = y3+1
p= p+(2*dx)-(2*dy)
23;4
4 -8 p<0 x4 = x4
y4 = y4+1
p = p+2*dx
23;5
5 0 p>=0 x5 =x5+1
y5 = y5+1
p= p+(2*dx)-(2*dy)
24;6
6 -8 p<0 x6 = x6
y6 = y6+1
p = p+2*dx
24;7
7 0 p>=0 x7 =x7+1
y7 = y7+1
p= p+(2*dx)-(2*dy)
25;8
8 -8 p<0 x8 = x8
y8 = y8+1
p = p+2*dx
25;9
Các điểm tọa độ nguyên theo thuật toán Bersenham
2) A(21;1) và B(25;9)
10
Ta có x=4, y=8. Ta có bảng:
k p
k
= p Kiểm tra
k-1
p
k
Tính toán (x
k
,y )
k
0 p = (2*dy)-dx = 8 21;1
1 8 p>=0 x1 =x1
y1 = y1+1
p=p+2(dx-dy)
21;2
2 0 p>=0 x2 =x2
y2 = y2+1
p=p+2(dx-dy)
21;3
3 -8 p<0 x3 = x3+1
y3 = y3
p= p+2*dy
22;3
4 8 p>=0 x4 =x4
y4 = y4+1
p=p+2(dx-dy)
22;4
5 0 p>=0 x5 =x5
y5 = y5+1
p=p+2(dx-dy)
22;5
6 -8 p<0 x6 = x6+1
y6 = y6
p= p+2*dy
23;5
7 8 p>=0 x7 =x7
y7 = y7+1
p=p+2(dx-dy)
23;6
8 0 p>=0 x8 =x8
y8 = y8+1
p=p+2(dx-dy)
23;7
9 -8 p<0 x9 = x9+1
y9 = y9
p= p+2*dy
24;7
10 8 p>=0 x10 =x10
y10 = y10+1
p=p+2(dx-dy)
24;8
11 0 p>=0 x11 =x11
y11 = y11+1
p=p+2(dx-dy)
24;9
12 -8 p<0 x12 = x12+1
y12 = y12
p= p+2*dy
25;9
11
Các điểm tọa độ nguyên theo thuật toán MidPoint
3) tâm O(21,1) và bán kính R=10
B1: Gán tọa độ điểm khởi đầu là (x ; y ) = (0;10)
0 0
B2: P = 1 – R = -9; P = P
0 k 0
B3: P = -9 <0 => x = x + 1 = 1 y = y =10
k k+1 k k+1 k
P
k+1
= P +2x +3 = -9+2+3= -4
k k+1
Do tâm là (21;1) nên x = 21; y =11
plot plot
k p
k
Kiểm tra p Tính toán (x
k k
;y )
k
0 p=1-10=9 (21;11)
1 -9 p<0 x=x-1
y=y
p=p+2*x+3
(20;11)
2 34 p>0 x=x-1
y=y+1
p=p+2*x-2*y+5
(19;12)
3 53 p>0 x=x-1
y=y+1
p=p+2*x-2*y+5
(18;13)
4 68 p>0 x=x-1
y=y+1
p=p+2*x-2*y+5
(17;14)
5 79 p>0 x=x-1
y=y+1
p=p+2*x-2*y+5
(16;15)
12
6 86 p>0 x=x-1
y=y+1
p=p+2*x-2*y+5
(15;16)
Kết quả các điểm được tạo ra với các cung 45 :
Quadrant-1
(X,Y)
Quadrant-2
(-X,Y)
Quadrant-3
(-X,-Y)
Quadrant-4
(X,-Y)
(21,11) (-21,11) (-21,-11) (21,-11)
(20,11) (-20,11) (-20,-11) (20,-11)
(19,12) (-19,12) (-19,-12) (19,-12)
(18,13) (-18,13) (-18,-13) (18,-13)
(17,14) (-17,14) (-17,-14) (17,-14)
(16,15) (-16,15) (-16,-15) (16,-15)
(15,16) (-15,16) (-15,-16) (15,-16)
(16,15) (-16,15) (-16,-15) (16,-15)
(15,16) (-15,16) (-15,-16) (15,-16)
(14,17) (-14,17) (-14,-17) (14,-17)
(13,18) (-13,18) (-13,-18) (13,-18)
(12,19) (-12,19) (-12,-19) (12,-19)
(11,20) (-11,20) (-11,-20) (11,-20)
(11,21) (-11,21) (-11,-21) (11,-21)
13

Preview text:

BÀI TẬP ĐỒ HOẠ MÁY TÍNH Đà nẵng, 09/05/2023
2.1. Bài tập tính toán đồ hoạ máy tính: xa ya za 21 01 57 xb yb zb 23 03 55 xc yc zc 33 09 59 xD yD zD 35 15 65
1) Cho hai điểm A (xa, ya), B (xb, yb). Tìm phương trình của đường thẳng đi qua 2
điểm AB. Tự chọn các tọa độ cụ thể.
Cho A (21, 1); B (23, 3)
= (2, 2) -> vecto pháp tuyến = (-2, 2)
-> Phương trình của đường thẳng cần tìm là:
(AB): -2x + 2y + c = 0 đi qua A (21,1) ->(AB): -2x+2y+40 = 0
2) Cho ba điểm A (xa, ya), B (xb, yb), C (xc, yc). Tự chọn các giá trị và tìm phương
trình đường tròn đi qua 3 điểm này.

Cho A (21, 1); B (23, 3),C(33,9).
Gọi I là tâm đường tròn ngoại tiếp tam giác ABC
Gọi M (22, 2) là trung điểm AB
Gọi N (27, 5) là trung điểm AC
Gọi d1 là đường trung trực của AB-> = (2, 2) là vecto pháp tuyến của d1
Gọi d2 là đường trung trực của AC -> = (12, 8) là vecto pháp tuyến của d2
d1: 2x +2y +c = 0 qua M (22, 2) -> d1: 2x+2y-48 = 0 (1)
d2: 12x + 8y+c = 0 qua N (27, 5) -> d2: 12x+8y-364 = 0 (2)
Từ (1) và (2) -> -> -> I (43, -19) R = IA = = 2
->(I): (x−43)2 + (y+19) = 884 2
3) Cho tam giác ABC với A (xa, ya), B xb, yb), C (xc, yc). Tự chọn các giá trị và xác
định tâm đường tròn ngoại tiếp, tâm đường tròn nội tiếp, giao điểm 3 đường cao,
giao điểm 3 đường trung tuyến, giao điểm 3 đường phân giác.

Cho A (21, 1); B (23, 3),C(33,9).
+ Tâm đường tròn ngoại tiếp
Gọi I là tâm đường tròn ngoại tiếp tam giác ABC
Gọi M (28, 6) là trung điểm BC
Gọi N (27,5) là trung điểm AC
Gọi d1 là đường trung trực BC -> VTPT: = (, 6)
Gọi d2 là đường trung trực AC -> VTPT: = (12, 8)
->d1 = 10x +6y+ c = 0 qua M -> d1: 10x += 0 (1)
d2 = 12x +8y + c = 0 qua N -> d2: 12x +8y -364= 0 (2) Từ (1), (2) -> -> I ()
+ Tâm đường tròn nội tiếp và giao điểm 3 đường phân giác AB = , AC =
Gọi AD là đường phân giác góc BAC, D ∈ BC, D (x, y) = -> = .
-> -> -> D (24.64, 3.98)
Gọi J là tâm đường trong nội tiếp tam giác ABC ->J
∈ AD, BJ là phân giác góc ABC, J (x, y) = (1.64, 0.98) -> BD =
Ta có: = -> = . -> = -5 -> -> -> J (24.03) + Giao điểm 3 đường cao
Gọi d1: qua A và vuông góc với BC 3
-> d1 = 10x +6y+ c = 0 qua A -> d1: 10x +6y-216 =0 (1)
Gọi d2: qua B và vuông góc AC
->d2 = 12x +8y + c = 0 qua B -> d2: 12x +8y -300 = 0 (2)
Gọi H là trực tâm tam giác ABC Từ (1), (2) -> -> ->H (-9, 51)
+ Giao điểm 3 đường trung tuyến
Gọi G là trọng tâm tam giác ABC
xG = = , yG =13/3= -> G (,13/3)
4) Cho hai đường thẳng AB, CD cắt nhau, có A (xa, ya), B (xb, yb), C (xc, yc), D (xd,
yd). Xác định giao điểm nếu có của hai đường thẳng này
.
Cho A (21, 1); B (23, 3),C(33,9),D(35,15). = (2, 2) -> = (-2, 2) = (2, 6) -> = (-6,2)
->(AB): -2x+2y+c = 0 qua B -> (AB): -2x+2y+40 = 0 (1)
->(AC): -6x +2y+ c = 0 qua C -> (AC): -6x +2y+36 = 0 (2) Từ (1), (2) -> ->
-> Có giao điểm tại toạ độ có x = -1, y = -21
5) Cho đường tròn tâm O (xc, yc), bán kính R và điểm P (x, y) ngoài đường tròn.
Xác định khoảng cách ngắn nhất giữa P và đường tròn.

Cho O (33,9), R = 2, P (36, 13) ->PO = = 5
Khoảng cách ngắn nhất: PO – R = 5 – 2 = 3
6) Cho đường thẳng AB có A (xa, ya, za), B (xb, yb, zb). Tìm khoảng cách từ điểm
P (xc, yc, zc) đến đoạn thẳng AB.

A (21,1,57), B (23,3,55) -> = (2,2,-2) (AB) 4 P (33,9,59)
Gọi H là hình chiếu từ P lên AB, H ∈ AB ->H (21+2t, 1+2t, 57-2t) = (2t-12, 2t-8, -2t-2)
. = 0 -> t -2 + t-3 + t-4 = 0 -> t = 11.54 ->H (44.08,24.08,33.92) PH = = 33.29 7),8),10)
Cho A (21,1,57), B (23,3,55), C (33,9,59) = (2,2,-2), = (12, 8,2)
Vecto pháp tuyến: = , ]= (20, -28 , -8)
->(ABC): 20x-28y-8z +d = 0 qua A ->(ABC): 20x-28y-8z -64 = 0 Cho P (35,15,65)
Khoảng cách từ P đến mặt phẳng (ABC) dP/(ABC)= =
9) Cho vector v(xa, ya, za). Viết công thức chuẩn hóa vector v để có chiều dài đơn vị (= 1)
_ Cho v(21, 1, 57), |v| = = là độ dài vecto v Chuẩn hoá: = = ( , , ) Code: Struct Vector {float x,y,z;} Vector ChuanHoa (Vector a){
float c = sqrt (pow (a.x,2) + pow (a.y,2) + pow (a.z,2)); Vector b; b.x = a.x/c; 5 b.y = a.y/c; b.z = a.z/c; return b; } 6
2.2. Bài tập các phép biến đổi đồ họa 1) Model Transformation Pobj = ( 21, 1, 57, 1 )
Phép tịnh tiến: theo vecto T(dx, d , d y z) = (1,4,6) MT = =
Phép quay 1 trục (ux , uy , uz )= (1,2,3) một góc 45 trong không gian 3D : [MR]u = c= cos α , S=sin α [MR]u=
Ma trận biến đổi: M = MT . [MR] = u =>Pworld = M.Pobj = 2) View Transformation
e(4,4,4) , c(0,1,4), up(0,1,0) n= = = () u= = (0,0,-1) v= u.n = () Mview = . = Pcam = Mview . Pworld = . =
3) Projection Transformation MProj = = = > Pproj =Mproj . Pcam =
4) Normalized Device Coordinate Pndc = =
5) ViewPort Transformation M1 = Ma trận Viewport M2 = 7
= > Pscreen = M2.Pndc = => Pscreen = ( 45.3645 ; 50.0116 )
2.3. Bài tập đường, mặt cong tham số: Mã SV thứ nhất u 102210157 0.57
1) Cho đường cong Bézier có n + 1 = 4 đỉnh điều khiển P0 = (10, 0), P1 = (20, 30),
P2= (50, 40), P3 = (80, 0). Tính tọa độ (Cx, Cy) của một điểm C(u) trên đường cong
ứngvới tham số u
[0, 1].
Xét đường cong Bézier có n + 1 = 4 đỉnh điều khiển P0, P1, P2, P3:
Phương trình của đường cong như sau C(u) = (1-u)3P + 3u(1-u)2 2 3 0 P1 + 3u (1-u)P + u 2 P3 Với u = 0.57, ta được:
C (0.57) = (1-0.57) x (10, 0) + 3x0.57(1-0.57) 3
2x(20, 30) + 3x0.57 (1-0.57)x(50, 2 40) +0.57 x(80,0) 3 = (42.89014, 26.25021)
->C (x, y) = (42.89014, 26.25021)
2) Cho đường cong B-spline đồng nhất (uniform) có n + 1 = 4 đỉnh điều khiển P0 =
(0, 10), P1 = (10, 40), P2 = (40, 40), P3 = (50, 0) có bậc p =3. Tính tọa độ (Cx, Cy) của
điểm C(u) trên đường cong ứng với tham số tự chọn u
[0, 1]
Phương trình biểu diễn đường cong B-spline bậc 3 (p = 3) đồng nhất có 4 đỉnh
điều khiển P0, P1, P2, P3: C(u)=
C(u)= N0,3(u)P0 + N1,3(u)P1 + N2,3(u)P2 + N3,3(u)P3
Với các hàm cơ sở Ni,3(u) được xác định (u = 0.57): N 3 0,3(u) = (1-u) = 0.01325 N 3 2
1,3(u) = (3u -6u + 4) = 0.43436 8 N 3
2,3(u) = (-3u +3u2 + 1) = 0.23652 N3,3(u) = u = 0.03087 3
->C(u) = 0.01325x(0, 10) + 0.43436x(10, 40) + 0.23652 x(40, 40) + 0.03087 x (50, 0) = (15.3479,26.9677)
->C (x, y) = (15.3479,26.9677)
3) Cho đường cong B-spline không đồng nhất có n + 1 = 4 đỉnh điều khiển P0 =
(10,0), P1 = (20, 30), P2 = (50, 40), P3 = (80, 0), bậc p = 2, vector nút U = {0, 0, 0,
0.5,1, 1, 1}.Tính tọa độ (Cx, Cy) của điểm C(u) trên đường cong ứng với tham số u
[0, 1].
Triển khai phương trình đường cong B-spline: C(u)= C(u) = N0,2(u)P + N 0 1,2(u)P + N 1 2,2(u)P + N 2 3,2(u)P (1) 3
Với k = 2, i = 0... (3+2-2), u = 0.57 N0,2(u) == 0.0196 (2) N1,2(u) = = 0.3306 (3) N 2 3
2,2(u) = =0.6498, ∀ u ∈ [u , u ) (4) N 2 3
3,2(u) = 0, ∀ u ∈ [u , u ) (5)
Từ (1), (2), (3), (4), (5), ta được:
C(u) = 0.0196x (10, 0) + 0.3306 x (20, 30) + 0.6498 x (50, 40) = (39.298,35.91) ->C(x, y) = (39.298,35.91)
2.4. Bài tập thuật toán cơ bản vẽ đường 1) A(21;1) và B(25;9) Ta có
x=4, y=8. Hệ số góc m=2, p= 2 x- y. Ta có bảng: k pk = pk-1 Kiểm tra pk Tính toán (xk,yk) 9 0 p= (2*dx)-dy 21;1 1 0 p>=0 x1 =x1+1 22;2 y1 = y1+1 p= p+(2*dx)-(2*dy) 2 -8 p<0 x2 = x2 22;3 y2 = y2+1 P = p+2*dx 3 0 p>=0 x3 =x3+1 23;4 y3 = y3+1 p= p+(2*dx)-(2*dy) 4 -8 p<0 x4 = x4 23;5 y4 = y4+1 p = p+2*dx 5 0 p>=0 x5 =x5+1 24;6 y5 = y5+1 p= p+(2*dx)-(2*dy) 6 -8 p<0 x6 = x6 24;7 y6 = y6+1 p = p+2*dx 7 0 p>=0 x7 =x7+1 25;8 y7 = y7+1 p= p+(2*dx)-(2*dy) 8 -8 p<0 x8 = x8 25;9 y8 = y8+1 p = p+2*dx
Các điểm tọa độ nguyên theo thuật toán Bersenham 2) A(21;1) và B(25;9) 10 Ta có x=4, y=8. Ta có bảng: k pk = pk-1 Kiểm tra Tính toán (xk,y ) k pk 0 p = (2*dy)-dx = 8 21;1 1 8 p>=0 x1 =x1 21;2 y1 = y1+1 p=p+2(dx-dy) 2 0 p>=0 x2 =x2 21;3 y2 = y2+1 p=p+2(dx-dy) 3 -8 p<0 x3 = x3+1 22;3 y3 = y3 p= p+2*dy 4 8 p>=0 x4 =x4 22;4 y4 = y4+1 p=p+2(dx-dy) 5 0 p>=0 x5 =x5 22;5 y5 = y5+1 p=p+2(dx-dy) 6 -8 p<0 x6 = x6+1 23;5 y6 = y6 p= p+2*dy 7 8 p>=0 x7 =x7 23;6 y7 = y7+1 p=p+2(dx-dy) 8 0 p>=0 x8 =x8 23;7 y8 = y8+1 p=p+2(dx-dy) 9 -8 p<0 x9 = x9+1 24;7 y9 = y9 p= p+2*dy 10 8 p>=0 x10 =x10 24;8 y10 = y10+1 p=p+2(dx-dy) 11 0 p>=0 x11 =x11 24;9 y11 = y11+1 p=p+2(dx-dy) 12 -8 p<0 x12 = x12+1 25;9 y12 = y12 p= p+2*dy 11
Các điểm tọa độ nguyên theo thuật toán MidPoint
3) tâm O(21,1) và bán kính R=10
B1: Gán tọa độ điểm khởi đầu là (x0 ; y0) = (0;10) B2: P = 1 – R = -9; P 0 = P k 0 B3: P = -9 <0 => x k k+1 = xk + 1 = 1 yk+1 = yk =10
Pk+1 = Pk +2xk+1+3 = -9+2+3= -4
Do tâm là (21;1) nên xplot = 21; yplot =11 k pk Kiểm tra pk Tính toán (xk;yk) 0 p=1-10=9 (21;11) 1 -9 p<0 x=x-1 (20;11) y=y p=p+2*x+3 2 34 p>0 x=x-1 (19;12) y=y+1 p=p+2*x-2*y+5 3 53 p>0 x=x-1 (18;13) y=y+1 p=p+2*x-2*y+5 4 68 p>0 x=x-1 (17;14) y=y+1 p=p+2*x-2*y+5 5 79 p>0 x=x-1 (16;15) y=y+1 p=p+2*x-2*y+5 12 6 86 p>0 x=x-1 (15;16) y=y+1 p=p+2*x-2*y+5
Kết quả các điểm được tạo ra với các cung 45 : Quadrant-1 Quadrant-2 Quadrant-3 Quadrant-4 (X,Y) (-X,Y) (-X,-Y) (X,-Y) (21,11) (-21,11) (-21,-11) (21,-11) (20,11) (-20,11) (-20,-11) (20,-11) (19,12) (-19,12) (-19,-12) (19,-12) (18,13) (-18,13) (-18,-13) (18,-13) (17,14) (-17,14) (-17,-14) (17,-14) (16,15) (-16,15) (-16,-15) (16,-15) (15,16) (-15,16) (-15,-16) (15,-16) (16,15) (-16,15) (-16,-15) (16,-15) (15,16) (-15,16) (-15,-16) (15,-16) (14,17) (-14,17) (-14,-17) (14,-17) (13,18) (-13,18) (-13,-18) (13,-18) (12,19) (-12,19) (-12,-19) (12,-19) (11,20) (-11,20) (-11,-20) (11,-20) (11,21) (-11,21) (-11,-21) (11,-21) 13