1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài tập lớn giải tích 1 Đường cong bézier

21 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Bài Tập Lớn Giải Tích 1 Đường Cong Bézier
Tác giả Nguyễn Anh Thư, Nguyễn Minh Thuận, Tô Quốc Tính, Nguyễn Khánh Toàn, Lê Minh Trí, Võ Đình Trí
Người hướng dẫn TS. Đào Huy Cường
Trường học Trường Đại Học Bách Khoa
Chuyên ngành Khoa Khoa Học Ứng Dụng
Thể loại Báo cáo
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 21
Dung lượng 2,76 MB

Nội dung

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 1

BÁ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 2

2 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 3

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

2 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 6

2.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 7

3.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 8

3.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 9

4.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 10

Kế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 11

Dự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 13

Vậ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 14

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’);

Code Matlab:

1% tao diem kiem soat

2P0 = [4.8 12];

3P1 = [4.6 15];

Trang 15

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’);

Trang 16

4.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 17

1% 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 18

5 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 19

6 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 20

8 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 21

9 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,

Ngày đăng: 24/11/2024, 06:37

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w