Thiết kế các mặt cong dựa trên Bezier và B-Spline

Một phần của tài liệu nhập môn kỹ thuật đồ họa (Trang 130 - 132)

Để mô tả và vẽ các mặt cong ta cũng có thể dùng các hàm trộn Bezier và B-Spline tương tự như trong trường hợp đường cong.

Các mnh Bezier (Bezier surface patches)

Xét đường cong Bezier như là một hàm theo tham số v và có các điểm kiểm soát thay đổi theo u. Ta có công thức :

Lúc này, khi u thay đổi ta sẽ có các điểm kiểm soát thay đổi kéo theo đường cong Bezier cũng thay đổi theo. Sự biến thiên của các đường cong Bezier này trong không gian sẽ tạo ra một mặt cong.

Khi u thay đổi, các điểm pk(u) sẽ thay đổi trên một đường cong nào đó. Nếu cho các đường cong này chính là các đường cong Bezier, mỗi đường cong dựa trên (M+1) điểm kiểm soát thì :

Lúc này :

Ta gọi đây là dạng tích tensor của mảnh Bezier.

Dán các mnh Bezier li vi nhau

Mục đích là để tạo ra một dạng mặt cong phức tạp gồm nhiều mảnh Bezier kết hợp lại với nhau sao cho trơn tru tại các biên chung.

Khi dán hai mảnh Bezier lại với nhau (mỗi mảnh có một khối đa diện kiểm soát riêng và cùng sử dụng công thức ở trên với u,v biến thiên trong đoạn [0, 1]), vấn đề là làm sao để chúng có thể dán vào nhau một cách trơn tru ?

Hai mảnh sẽ gắn vào nhau ở tất cả các điểm dọc biên chung nếu các đa diện kiểm soát của chúng trùng khớp với nhau ở biên. Điều này có được là do dạng của đường cong Bezier biên chỉ phụ thuộc vào đa giác kiểm soát nằm ở biên của khối đa diện kiểm soát. Do đó, để dán được ta chỉ cần chọn các đa giác kiểm soát biên cho hai mặt là trùng nhau.

Hình 6.21 - Minh họa hai mảnh Bezier dán lại với nhau

Về tính liên tục tại tiếp tuyến, điều kiện đủ là mỗi cặp cạnh của các khối đa diện tại biên phải là cộng tuyến.

Các mnh B-Spline (B-Spline patches)

Các hàm B-Spline có thể dùng ở dạng tích tensor thay cho dạng đa thức Bernstein để đạt được tính kiểm soát cao hơn khi thiết kế mặt cong :

Khối đa diện kiểm soát có (M+1)x(L+1) đỉnh và u, v biến thiên từ 0 tới giá trị lớn nhất của nút trong các vector nút tương ứng của chúng.

Thông thường để thiết kế, người ta vẫn dùng các B-Spline cấp 4 (tức là cubic B-Spline) và do việc chọn sốđiểm kiểm soát không hạn chế (số lượng các điểm không ảnh hưởng đến bậc của đa thức nhưđối với đường cong Bezier) nên người ta có thể tạo ra các dạng mặt cong rất phức tạp. Tất nhiên trước đó, người ta phải chọn ra một đa diện nút (knot polyhedron) để tạo ra mặt cong có dạng mong muốn.

Câu hỏi cuối chương

1. Viết chương trình vẽ các mặt đơn giản đã được khảo sát như hình trụ, hình nón, hình cầu, ..

2. Nhận xét cách tiếp cận vẽđường trong thuật toán Casteljau khác với cách tiếp cận vẽ các đối tượng đồ họa cơ sởở chương trước như thế nào ?

3. Cài đặt thuật toán vẽ đường cong bằng Bezier cho phép người dùng định nghĩa tập điểm kiểm soát mô tả hình dạng đường cong và cho phép người dùng hiệu chỉnh một số điểm kiểm soát để hiệu chỉnh đường cong theo ý muốn.

4. Viết chương trình vẽđường Spline 5. Viết chương trình vẽ các mặt Bezier

THÔNG TIN TÁC GI:

* Tác giả giáo trình: Trần Thị Minh Hoàn * Ngày sinh 21 tháng 6 năm 1979

* Cơ quan công tác: Giảng viên bộ môn KHMT&CNPM, khoa Công nghệ thông tin, đại học Thuỷ lợi

* Địa chỉ liên hệ:

Phạm vi và đối tượng sử dụng giáo trình: Sinh viên chuyên ngành Công nghệ

thông tin.

* Từ khoá để tra cứu: Nhập môn Kĩ thuật đồ hoạ, Kĩ thuật đồ hoạ, đồ hoạ máy tính, computer graphics, ..

Một phần của tài liệu nhập môn kỹ thuật đồ họa (Trang 130 - 132)