Hình ảnh đường cong tham số , Nếu dx dt ̸= 0 Đường cong Bézier là một đường cong tham số thường được sử dụng trong đồ họa máytính và một số lĩnh vực khác.. Đường cong Bézier được công bố
Trang 1BÁO CÁO BÀI TẬP LỚN
GIẢI TÍCH 1
ĐƯỜNG CONG BÉZIER
GVHD: TS Đào Huy CườngSV: Nguyễn Anh Thư - 2313385Nguyễn Minh Thuận - 2313354
Tô Quốc Tính - 2313466Nguyễn Khánh Toàn - 2313486
Lê Minh Trí - 2313593
Võ Đình Trí - 2313632
TP HỒ CHÍ MINH, THÁNG 12/2023
Trang 22 Lý thuyết 3
2.1 Đường cong được xác định bởi tham số 3
2.2 Tính toán với phương trình tham số 3
2.2.1 Tiếp tuyến 3
2.3 Định Nghĩa đường cong Bézier 3
2.4 Các đường cong Bézier 4
2.4.1 Đường cong Bézier tuyến tính (bậc một) 4
2.4.2 Đường cong Bézier toàn phương (bậc hai) 4
2.4.3 Dạng tổng quát 4
2.5 Đường cong Bézier lập phương (bậc ba) 5
3 Ứng dụng 5 3.1 Ảnh hưởng của đường cong Bézier đối với ngành thiết kế đồ họa 5
3.2 Đồ họa máy tính 6
3.3 Hoạt hình 6
3.4 Chế tạo người máy 7
4 Giải bài tập 8 4.1 Câu 31 8
4.1.1 Bài giải câu 31: 8
4.2 Câu 32 8
4.2.1 Bài giải câu 32: 8
4.3 Các câu hỏi trong Laboratory Project Bézier Curves 9
4.3.1 Problem 1 9
4.3.2 Problem 2 11
4.3.3 Problem 3 12
4.3.4 Problem 4 13
4.3.5 Problem 5 15
Trang 31 Phân công
Nguyễn Anh Thư Soạn lý thuyết và tham gia giải bài tập
Nguyễn Minh Thuận Làm bài tập 31,32 và code Matlab minh họa
Tô Quốc Tính Làm Problem 1,2,3, soạn ứng dụng và code Matlab minh họa
Nguyễn Khánh Toàn Soạn lý thuyết, ứng dụng và tham gia giải bài tập
Lê Minh Trí Làm Problem 4,5 và code Matlab minh họa
Võ Đình Trí Làm Problem 4,5, phân chia công việc, tổng hợp và điều chỉnh
code, soạn Latex
Trang 42 Lý thuyết
Giả sử rằng là cả hai đều được cho dưới dạng hàm của biến thứ ba (gọi là tham số) Theophương trình tham số x = f (t) và y = g(t) Mỗi giá trị của t xác định một điểm (x, y) mà chúng
ta có thể vẽ đồ thị trong mặt phẳng tọa độ Khi thay đổi, các điểm sẽ thay đổi và vạch ra mộtđường cong tham số Và do đó (x, y) = (f (t), g(t)) là vị trí của một điểm tại thời điểm t
Hình ảnh đường cong tham số
, Nếu dx
dt ̸= 0
Đường cong Bézier là một đường cong tham số thường được sử dụng trong đồ họa máytính và một số lĩnh vực khác Dạng tổng quát hóa của đường cong Bézier trong không gian nhiềuchiều được gọi là mặt phẳng Bézier, trong đó tam giác Bézier là một trường hợp đặc biệt
Trang 5Đường cong Bézier được công bố lần đầu vào năm 1962 bởi một kỹ sư người Pháp PierreBézier, người sử dụng nó để thiết kế thân ôtô Nhưng việc nghiên cứu những đường cong nàythực tế đã bắt đầu từ năm 1959 bởi nhà toán học Paul de Casteljau, ông sử dụng giải thuật DeCasteljau để đánh giá các đường cong đó.
Một đường cong Bézier được xác định bằng một tập hợp các điểm kiểm soát (controlpoint) P0 đến Pn với n được gọi là bậc của nó (n = 1 cho bậc tuyến tính, 2 cho bậc 2, ).Điểm kiểm soát đầu và cuối là các điểm mút (điểm kết thúc) của đường cong, trong khi các điểmnằm giữa (nếu có) thường không nằm trên đường cong
Giá trị n càng cao thì bậc càng cao và độ mịn càng cao, tức là số điểm control tăng lên,
độ chính xác để xác định đường cong đó càng chính xác, vì vậy mà độ mịn nó sẽ tăng theo
2.4.1 Đường cong Bézier tuyến tính (bậc một)
Với 2 điểm P0 và P1, đường cong Bézier tuyến tính là một đoạn thẳng nối liền với hai điểm đó.Phương trình của đường cong này là:
B(t) = P0+ t(P1− P0) = (1 − t)P0+ tP1, t ∈ [0, 1]
2.4.2 Đường cong Bézier toàn phương (bậc hai)
Đường cong Bézier bậc 2 được tạo bởi một hàm B(t), với các điểm P0, P1, và P2 cho trước, khiđó:
Trang 62.5 Đường cong Bézier lập phương (bậc ba)
Với 4 điểm P0, P1, P2, P3trên mặt phẳng hoặc trong không gian nhiều chiều có thể định nghĩamột đường cong Bézier bậc 3 Đường cong này bắt đầu từ điểm P0, đi theo hướng của điểm P1
và P2 trước khi kết thúc tại P3 Đường cong được hình thành thường không trực tiếp đi quađiểm P1 và P2 và 2 điểm này chỉ mang tính định hướng cho đường cong
Dựa vào dạng tổng quát ta có:
Trung tâm Nghiên cứu Xerox Palo Alto nhằm mục đích hiện đại hóa không gian văn phòngtruyền thống để tạo ra không gian làm việc cho tương lai Họ đề xuất sử dụng các chương trìnhmáy tính và mạng lưới công nghiệp hóa, trình soạn thảo văn bản và máy in laser Điểm mù duynhất của họ là thiếu động lực phát triển đồ họa máy tính
John Warnock và Charles Geschke nhận thấy Trung tâm nghiên cứu không hướng đến việcphát triển một ngôn ngữ đồ họa mới có thể trở nên thương mại hóa Năm 1982, họ rời Trungtâm và thành lập công ty mới tên Adobe, kỉ nguyên mới cho ngành thiết kế đồ họa được mở ra.Thành quả đầu tiên của họ là công nghệ PostScript Với ngôn ngữ phổ quát này, máy in cóthể diễn giải tài liệu văn bản để in đúng nội dung, nó dựa trên các điểm kiểm soát được kếtnối bằng thuật toán để tạo ra các đường cong mượt mà Phần mềm của họ sử dụng đường congBézier để tạo ra các chữ cái chính xác và bóng bẩy
Vẽ đường cong trong đồ họa vector sử dụngđường cong Bezier
Ngành in ấn hoan nghênh công nghệ mới này và nhận ra rằng cách vẽ mới này để tạo hình minhhọa, quảng cáo in và bìa sẽ nhanh hơn và rẻ hơn Đường cong Bézier đã thay đổi thiết kế đồ họamãi mãi Vậy, tất cả các đường cong Bézier khác nhau mà bạn có thể sử dụng để tạo ra các thiết
kế là gì? Đó chính là ứng dụng vào kĩ thuật.Vì đường cong Bézier cho phép các nhà thiết kế và
kỹ sư đồ họa mô hình hóa các vật thể trong đời thực nên ứng dụng của chúng rất phong phú và
có giá trị vô cùng lớn Chúng ta hãy đi qua một số ứng dụng của nó
Trang 73.2 Đồ họa máy tính
Đường cong Bézier cho phép chúng ta mô hình hóa các đường cong mượt do đường cong đượcchứa trong bao lồi được tạo bởi các điểm điều khiển Sau đó, bạn có thể áp dụng các phép biếnđổi cho đường cong, chẳng hạn như xoay và tịnh tiến,
Metafont (là ngôn ngữ mô tả được sử dụng để xác định phông chữ raster) sử dụng thuật toánrasterization (việc chuyển đổi đồ họa vector thành hình ảnh tương đương bao gồm các mẫu pixel
có thể được lưu trữ và xử lý dưới dạng tập hợp bit), dựa trên phương trình bậc hai để rời rạchóa đường cong
Biến đổi các đồ họa vector thành các pixel
Đây là cách các nhà thiết kế chuyển động và hoạt hình tạo ra “cảm giác” hoặc “vật lý” mà
họ đang tìm kiếm Đường cong Bézier không chỉ kiểm soát nơi vật chuyển động mà còn xác địnhvận tốc theo thời gian chuyển động Nếu một biểu tượng cần di chuyển từ điểm A đến điểm B,nhà thiết kế sẽ sử dụng đường cong Bézier để làm mượt quỹ đạo con trỏ và đặt tốc độ di chuyển
Thiết kế cánh bướm chuyển động
Trang 83.4 Chế tạo người máy
Đường cong Bézier cũng được sử dụng trong chế tạo robot để tạo ra quỹ đạo của bộ phậntác động cuối (end effector: thuật ngữ ‘end effector’ hoặc ‘End-of-arm Tooling’ (EOAT) được sửdụng để mô tả bất kỳ thiết bị nào được gắn vào phần cuối của cánh tay robot.) Điều này là do
đa giác điều khiển có thể cho biết liệu đường đi có va chạm với bất kỳ vật thể hoặc chướng ngạivật nào gần đó hay không, điều này rất cần thiết đối với một cỗ máy có thể điều hướng thế giớivật lý
End effector được gắn vào, giúp cánh tayrobot chuyển động mượt mà, đúng với côngdụng mà robot đem lại
Trang 94.1.1 Bài giải câu 31:
5x_AB = A(1) + t * (B(1) - A(1));
6y_AB = A(2) + t * (B(2) - A(2));
Trang 10Kết quả chạy code:
4.3.1 Problem 1
Graph the Bézier curve with control point P0(4, 1), P1(28, 48), P2(50, 42), and P3(40, 5) Then, onthe same screen, graph the line segments P0P1, P1P2, and P2P3 Notice that the middle controlpoints P1 and P2don’t lie on the curve; the curve starts at P0 heads toward P1and P2withoutreaching them, and ends at P3
Trang 11Dựa vào kết quả của bài 31, mục 10.1, sách James Stewart
1% tao diem kiem soat
9% tao cac diem tren duong cong
10curvePoints = zeros(numPoints, 2);
11% tinh toan cac diem
20% xuat hinh anh cac diem kiem soat
21plot(controlPoints(:, 1), controlPoints(:, 2), ’ko-’, ’MarkerFaceColor’, ’k’);
22hold on;
23% xuat hinh anh duong cong Bezier
24plot(curvePoints(:, 1), curvePoints(:, 2), ’r-’);
25% dat ten cac truc va duong cong
26title(’Bezier Curve’);
27xlabel(’x’);
28ylabel(’y’);
29% Enable grid
Trang 12(y − y0)(x − x0) = kTương tự với đường cong Bézier, ta tính hệ số góc tiếp tuyến:
dy
dx =
dydt
dtdx
= −3y0(1 − t)2+ 3y1[−2t(1 − t) + (1 − t)2] + 3y2[(−t2) + 2t(1 − t)] + 3y3t2
−3x0(1 − t)2+ 3x1[−2t(1 − t) + (1 − t)2] + 3x2[(−t2) + 2t(1 − t)] + 3x3t2
Trang 13Vậy tiếp tuyến của đường cong tại P0đi qua P1.
Tương tự, ta có hệ số góc tiếp tuyến của P3 tại t=1 là:
9% tao cac diem tren duong cong
10curvePoints = zeros(numPoints, 2);
11% tinh toan cac diem
20% xuat hinh anh cac diem kiem soat
21plot(controlPoints(:, 1), controlPoints(:, 2), ’ko-’, ’MarkerFaceColor’, ’k’);
Trang 1422hold on;
23% xuat hinh anh duong cong Bezier
24plot(curvePoints(:, 1), curvePoints(:, 2), ’r-’);
25% dat ten cac truc va duong cong
26title(’Bezier Curve’);
Code Matlab:
1% tao diem kiem soat
2P0 = [4.8 12];
3P1 = [4.6 15];
Trang 159% tao cac diem tren duong cong
10curvePoints = zeros(numPoints, 2);
11% tinh toan cac diem
20% xuat hinh anh cac diem kiem soat
21plot(controlPoints(:, 1), controlPoints(:, 2), ’ko-’, ’MarkerFaceColor’, ’k’);
22hold on;
23% xuat hinh anh duong cong Bezier
24plot(curvePoints(:, 1), curvePoints(:, 2), ’r-’);
25% dat ten cac truc va duong cong
26title(’Bezier Curve’);
Trang 164.3.5 Problem 5.
More complicated shapes can be represented by piecing together two or more Bézier curves.Suppose the first Bézier curve has control points P0, P1, P2, P3 and the second one has controlpoints P3, P4, P5, P6 If we want these two pieces to join together smoothly, then the tangents at
P3 should match and so the points P2, P3, and P4 all have to lie on this common tangent line.Using this principle, find control points for a pair of Bézier curves that represent the letter S.Giải
Theo yêu cầu bài toán các điểm P2, P3, P4phải nằm trên cùng 1 đường thẳng
→ chọn phương trình tham số của P2P4:
Trang 171% tao diem kiem soat
13% tao cac diem tren duong cong
14curvePoints1 = zeros(numPoints, 2);
15curvePoints2 = zeros(numPoints, 2);
16% tinh toan cac diem cho duong cong 1
34% xuat hinh anh cac diem kiem soat
35plot(controlPoints1(:, 1), controlPoints1(:, 2), ’ko-’, ’MarkerFaceColor’, ’k’);
36hold on;
37plot(controlPoints2(:, 1), controlPoints2(:, 2), ’ko-’, ’MarkerFaceColor’, ’k’);
38hold on;
39% xuat hinh anh duong cong Bezier
40plot(curvePoints1(:, 1), curvePoints1(:, 2), ’r-’);
41plot(curvePoints2(:, 1), curvePoints2(:, 2), ’r-’);
42% dat ten cac truc va duong cong
43title(’Bezier Curve’);
Trang 185 Chú thích code
zeros Tạo ra mảng hoặc ma trận
for end Tạo vòng lặp
plot Xuất hình ảnh của các điểm và các đường cong
title Đặt tên cho đường cong
xlabel, ylabel Đặt tên cho trục x và trục y
grid on bật đường lưới tọa độ
Trang 196 Thành tựu đạt được
Giúp chúng em có được cái nhìn bao quát và sâu rộng về đường cong Bézier, hiểu được vềlịch sử của nó cũng như công dụng mà đường cong đem lại không chỉ cho lĩnh vực kĩ thuật, màcòn về cho xã hội, về khoa học là rất lớn
Xây dựng được lưu đồ giải thuật để giải quyết các các bài toán, không chỉ môn Giải Tích nóiriêng và cả các môn cần tính toán chuẩn xác, tương đối nói chung
Giải được các bài toán bằng công cụ giải số trong Matlab, giúp chúng em tìm hiểu đượccách sử dụng công cụ, cũng như công dụng hữu ích, giúp ích rất nhiều cho việc khảo sát, lập đồthị và hiểu được vấn đề sâu sắc hơn
Đồng thời, sau khi hoạt động theo nhóm, chúng em đã học được rất nhiều điều quan trọng
Đó là tầm quan trọng của việc phân chia công việc, giao tiếp hiệu quả, sự hỗ trợ và cộng táctích cực, quản lí thời gian và học hỏi từ nhau
Mặc dù vẫn còn nhiều sai phạm và lỗi trong quá trình làm bài, công tác chuẩn bị báo cáo,nội dụng bài tập, có những khúc mắc khi làm về chủ đề vì nó khá mới, không thể hiểu nhữngvấn đề chưa được tường tận
Các thành viên chưa gặp mặt nhiều lần vì mỗi người đều có tiết khác nhau, công việcbận, chỉ có thể gặp mặt qua online nên có thể có những vấn đề chưa được làm rõ khi trực tiếpnói với nhau mới có thể phát huy hết
Trang 208 Lời cảm ơn
Chúng em xin gửi lời cảm ơn sâu sắc tới thầy, Tiến sĩ Đào Huy Cường, giáo viên hướng dẫnmôn giải tích 1, đã giúp chúng em hoàn thành bài báo cáo này một cách trọn vẹn, hướng dẫnchúng em giải đáp được nhiều vấn đề, kiến thức hữu ích mà chúng em chưa bao giờ gặp Qua
đó có kinh nghiệm trong việc làm việc nhóm, hiểu ra được những gì còn hạn chế, những gì mìnhlàm chưa tốt để hoàn thiện bản thân, trở thành những học sinh gương mẫu sau này Một lầnnữa và thật sự tận đáy lòng, chúng em xin cảm ơn thầy!
Trang 219 Tài liệu tham khảo
Tài liệu
[1] James Stewart, Calculus Early Transcendentals, 6th Edition’ McMASTER University.[2] A L Garcia and C Penland, MATLAB Projects for Scientists and Engineers, Prentice Hall,Upper Saddle River, NJ, 1996, “http://www.algarcia.org/fishbane/fishbane.html”.[3] Mathworks, “https://www.mathworks.com/”
[4] Wolframalpha, “https://shorturl.at/pDMO6”, Parametric Differentiation - FirstDerivative,