Bài tập ôn tập thi về đồ họa máy tính có đáp án | Đại học Bách Khoa, Đại học Đà Nẵng

Bài tập ôn tập thi về đồ họa máy tính có đáp án | Đại học Bách Khoa, Đại học Đà Nẵng giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học

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
| 1/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