Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 98 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
98
Dung lượng
2,25 MB
Nội dung
TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN - BÀI GIẢNG LÝ THUYẾT ĐỒ HỌA MÁY TÍNH Biên soạn : Giảng viên Mai Cường Thọ Mục lục Trang CHƯƠNG GIỚI THIỆU VỀ ĐỒ HỌA MÁY TÍNH I Các khái niệm tổng quan I.1 Một số khái niệm đồ hoạ máy tính I.2 Kỹ thuật đồ hoạ tương tác I.3 Mô hình hoá hình học II Một số ứng dụng đồ hoạ máy tính III Các kỹ thuật đồ hoạ III.1 Kỹ thuật đồ hoạ điểm III.2 Kỹ thuật đồ hoạ vector IV Tổng quan hệ đồ hoạ IV.1 Phần cứng IV.1.1 Thiết bị hiển thị IV.1.2 Thiết bị nhập IV.2 Phần mềm CHƯƠNG CÁC ĐỐI TƯỢNG ĐỒ HOẠ CƠ SỞ 12 I Các đối tượng đồ hoạ sở 13 I.1 Hệ toạ độ giới thực hệ toạ độ thiết bị 13 I.2 Điểm 14 I.3 Đoạn thẳng 14 I.4 Vùng tô 16 I.5 Ký tự 17 II Các thuật toán sinh đường 17 II.1 Các thuật toán sinh đoạn thẳng 18 II.2 Các thuật toán sinh đường tròn 23 II.3 Thuật toán vẽ đường conics số đường cong khác 26 III Các thuật toán tô màu 27 III.1 Tô màu dựa theo dòng quét 28 III.2 Tô màu dựa theo đường biên 29 CHƯƠNG CÁC PHÉP BIẾN ĐỔI TRONG ĐỒ HOẠ HAI CHIỀU 31 I Các phép biến đổi hình học sở 31 I.1 Phép tịnh tiến 32 I.2 Phép biến đổi tỉ lệ 33 I.3 Phép quay 34 I.4 Biểu diễn dạng ma trận phép biến đổi 34 I.5 Kết hợp phép biến đổi 37 II Một số phép biến đổi khác 38 II.1 Phép đối xứng 38 II.2 Phép đối xứng 39 II.3 Phép biến đổi ngược 40 III Biến đổi hệ toạ độ 41 CHƯƠNG CÁC PHÉP QUAN SÁT HAI CHIỀU 43 I Phép ánh xạ từ window sang viewport 45 II Các thuật toán xén hình 47 II.1 Xén điểm 47 II.2 Xén đoạn thẳng 47 II.3 Xén đa giác 51 CHƯƠNG ĐỒ HOẠ BA CHIỀU 53 I Tổng quan đồ hoạ ba chiều 53 I.1 Qui trình hiển thị đối tượng ba chiều máy tính 54 I.2 Mô hình khung nối kết (Wireframe Model) 55 I.3 Các phép chiếu đối tượng ba chiều 58 I.3.1 Phép chiếu song song 59 I.3.2 Phép chiếu phối cảnh 61 II Các phép biến đổi đồ hoạ ba chiều 63 II.1 Các phép biến đổi hình học 63 II.1.1 Phép tịnh tiến 64 II.1.2 Phép biến đổi tỉ lệ 64 II.1.3 Phép biến dạng 65 II.1.4 Phép quay 66 II.2 Kết hợp phép biển đổi affine ba chiều 70 II.3 Phép biến đổi mô hình phép biến đổi hệ toạ độ 70 CHƯƠNG ĐƯỜNG CONG VÀ MẶT CONG KHÔNG GIAN 72 I Đường cong không gian 72 I.1 Đường cong tham biến 72 I.2 Đường cong Hermite 75 I.3 Đường cong Bezier 77 I.4 Đường cong bậc ba SPLINE 81 I.5 Đường cong B-Spline 84 II Mặt cong không gian 86 II.1 Dẫn nhập 86 II.2 Các mặt tròn xoay 87 II.3 Phép quét hình 89 II.4 Các mặt cong tự 93 II.4.1 Mặt cong Hermite 93 II.4.2 Mặt cong Bezier 94 Tài liệu tham khảo 97 Chương Giới thiệu CHƯƠNG I GIỚI THIỆU VỀ ĐỒ HỌA MÁY TÍNH Sự phát triển khoa học, kỹ thuật, nghệ thuật, kinh doanh, công nghệ luôn phụ thuộc vào khả truyền đạt thông tin chúng ta, thông qua bit liệu lưu trữ microchip thông qua giao tiếp tiếng nói Câu châm ngôn từ xa xưa “một hình ảnh có giá trị vạn lời" hay "trăm nghe không thấy" cho thấy ý nghĩa lớn hình ảnh việc chuyển tải thông tin Hình ảnh cảm nhận nhanh dễ dàng hơn, đặc biệt trường hợp bất đồng ngôn ngữ Chúng ta vẽ hình ảnh không ảnh tĩnh mà biến đổi thành hình ảnh sinh động qua phép quay, tịnh tiến Do vậy, đồ họa máy tính trở thành lĩnh vực lý thú có nhiều ứng dụng thực tế lĩnh vực phát triển nhanh tin học Ngay từ xuất hiện, đồ họa máy tính có sức lôi mãnh liệt, hút nhiều người nhiều lĩnh vực khác khoa học, nghệ thuật, kinh doanh, quản lí, Tính hấp dẫn đa dạng đồ họa máy tính minh họa trực quan thông qua việc khảo sát ứng dụng Tuy nhiên, việc dạy học kỹ thuật đồ họa không đơn giản chủ đề có nhiều phức tạp Kỹ thuật đồ họa liên quan đến tin học toán học hầu hết giải thuật vẽ, tô phép biến hình xây dựng dựa tảng hình học không gian hai chiều ba chiều Hiện nay, Kỹ thuật đồ họa môn học giảng dạy cho sinh viên chuyên ngành Tin học với 45 tiết lý thuyết 15 tiết thực hành Nội dung giáo trình kỹ thuật đồ họa tập trung vào vấn đề sau : - Trình bày thuật toán vẽ tô đường đường thẳng, đa giác, đường tròn, ellipse đường conic Các thuật toán giúp cho sinh viên tự thiết kế để vẽ tô hình - Nội dung thứ hai đề cập đến đồ họa hai chiều đồ họa ba chiều bao gồm phép biến đổi Affine, windowing clipping, quan sát ảnh ba chiều qua phép chiếu, khử mặt khuất đường khuất, thiết kế đường cong mặt cong Bài giảng kỹ thuật đồ họa sửa đổi cập nhật dựa kinh nghiệm giảng dạy qua xây dựng dựa tài liệu tham khảo : Donald Hearn, M Pauline Baker; Computer Graphics; Prentice-Hall, Inc., Englewood Cliffs, New Jersey , 1986 Chương Giới thiệu I CÁC KHÁI NIỆM TỔNG QUAN I.1 Một số khái niệm đồ hoạ máy tính - Kỹ thuật đồ họa máy tính phương pháp công nghệ dùng việc chuyển đổi qua lại liệu hình ảnh hình máy tính - Kỹ thuật đồ họa hay đồ họa máy tính hiểu dạng phương pháp kỹ thuật tạo hình ảnh từ mô hình toán học mô tả đối tượng hay liệu lấy từ đối tượng thực tế - Kỹ thuật đồ họa máy tính định nghĩa lĩnh vực công nghệ thông tin mà nghiên cứu, xây dựng tập hợp công cụ (mô hình lý thuyết thư viện) khác để kiến tạo, xây dựng, lưu trữ xử lý mô hình (model) hình ảnh (image) đối tượng, vật tượng khác sống, sản xuất nghiên cứu Thuật ngữ kỹ thuật đồ họa máy tính (Computer Graphics) đề xuất nhà khoa học người Mỹ tên William Fetter vào năm 1960 Khi ông nghiên cứu xây dựng mô hình buồng lái máy bay cho hãng Boeing Mỹ I.2 Kỹ thuật đồ họa tương tác (Interactive Computer Graphics) Như lĩnh vực khác công nghệ thông tin, hệ thống sử dụng kỹ thuật đồ họa tương tác hệ thống xử lý thông tin bao gồm thành phần với thao tác tương ứng: (1) Nhập (vào) liệu (2) Xử lý lưu trữ liệu (3) Xuất (hiển thị) kết Nhập liệu Lưu trữ, xử lý Hiển thị kết USER Hệ thống đồ họa tương tác thiết kế xây dựng Ivan Sutherland năm 1963 - Hệ thống (SketchPad) Chương Giới thiệu I.3 Mô hình hóa hình học (Geometric modelling) - Mục đích: Mô hình hóa đối tượng đồ họa - Yêu cầu: Mô hình hình ảnh vật phải lột tả cách xác làm bật điểm vật, hình ảnh - Phương pháp: Thông thường trình mô hình hóa ta sử dụng phương pháp phân tích thiết kế từ xuống (top-down) kết thu sơ đồ phân cấp (hierachical diagram) hình ảnh sở hình ảnh vật cần xây dựng Trong sơ đồ phân cấp phải rõ : - Những thành phần sở đối tượng - Phương thức quan hệ (kết nối) thành phần Từ xử lý với đối tượng thông qua sơ đồ phân cấp Ví dụ : Xây dựng hình người chuyển động, sơ đồ phân cấp sau Người Đầu Mình Tay phải Tay trái Thân Chân phải Chân trái II MỘT SỐ ỨNG DỤNG CỦA ĐỒ HỌA MÁY TÍNH - Hỗ trợ thiết kế (CAD – Computer- Aided Design): Cho phép tạo vẽ thiết kế nhà, ô tô, máy bay, sân vận động, bảng quảng cáo, poster,… - Biểu diễn thông tin: Biểu diễn đồ thị, hình ảnh số liệu - Lĩnh vực giải trí, nghệ thuật: Các chương trình game, tạo ảnh nghệ thuật - Giáo dục đào tạo: Các chương trình mô phỏng, trình diễn hỗ trợ trực quan giáo dục đào tạo - Giao tiếp máy tính người dùng: Tạo giao diện đồ họa cho phép người sử dụng tương tác với máy tính dễ dàng III CÁC KỸ THUẬT ĐỒ HỌA Căn vào phương pháp xử lý liệu hệ thống, người ta phân biệt hai hệ thống đồ họa o Kỹ thuật đồ họa điểm (Sampled – Based Graphics) o Kỹ thuật đồ học vector (Geometry- Based Graphics) Chương Giới thiệu III.1 Kỹ thuật đồ họa điểm - Nguyên lý xây dựng mô hình hình ảnh: Các mô hình, hình ảnh đối tượng hiển thị thông qua pixel (từng mẫu rời rạc) - Đặc điểm: + Hình ảnh mô hình vật thể được định nghĩa tập hợp điểm, dẽ dàng thay đổi thuộc tính điểm để thay đổi phần vùng hình ảnh + Chúng ta dễ dàng copy pixel từ ảnh sang hình ảnh khác - Phương pháp tạo pixel : có phương pháp + Dùng phần mềm vẽ trực tiếp pixel một, dựa lý thuyết mô (lý thuyết Fractal, v.v), lý thuyết toán để xây dựng nên đối tượng hình ảnh thực vật + Rời rạc hoá (số hoá) ảnh thực đối tượng III.2 Kỹ thuật đồ họa vector - Nguyên lý xây dựng mô hình hình ảnh sau: Trước hết người ta xây dựng mô hình hình học (geometrical model) cho mô hình hình ảnh đối tượng, xác định đặc tính mô hình hình học này, sau dựa mô hình thu ta thực trình tô trát (rendering) để hiển thị điểm mô hình, hình ảnh thực đối tượng - Đặc điểm: + Không thay đổi thuộc tính điểm trực tiếp mà ta xử lý với thành phần hình học sở nó, sau lại thực trình tô trát hiển thị + Có thể quan sát hình ảnh mô hình hình ảnh vật nhiều góc độ khác cách dễ dàng cách thay đổi điểm nhìn góc nhìn IV TỔNG QUAN VỀ MỘT HỆ ĐỒ HỌA Một hệ đồ họa có hai thành phần phần cứng phần mềm Phần cứng bao gồm thiết bị hiển thị nhập liệu, … Phần mềm bao gồm công cụ lập trình trình ứng dụng đồ họa Chương Giới thiệu IV.1 Phần cứng IV.1.1 Thiết bị hiển thị Màn hình thiết bị hiển thị thông dụng hệ đồ họa Các thao tác hầu hết hình dựa thiết kế ống tia âm cực (CRT – cathode ray tube) Cấu tạo CRT Hình 1.3 : Cấu tạo CRT Độ phân giải (resolution) : số lượng điểm centimet mà vẽ theo chiều ngang chiều dọc Tỉ số phương (aspect ratio) tỉ lệ điểm dọc điểm ngang cần để phát sinh đoạn thẳng có độ dài đơn vị theo hai hướng hình Nhận xét : Tỉ số phương khác 1, dễ thấy hình vuông hiển thị có dạng hình chữ nhật, hình tròn có dạng hình ellipse Thực khái niệm tỉ số phương xuất phát từ chất khoảng cách (nếu tính đơn vị độ dài) điểm dọc không khoảng cách điểm ngang Một tỉ số phương có giá trị ¾ có nghĩa vẽ điểm theo chiều dọc có độ dài với việc vẽ điểm theo chiều ngang Màn hình dạng điểm (raster - scan display): Mỗi điểm hình gọi pixel pel (picture element) Các thông tin hình ảnh hiển thị hình lưu trữ vùng nhớ gọi vùng đệm làm tươi (refresh buffer) vùng đệm khung (frame buffer) Vùng nhớ lưu trữ tập giá trị cường độ sáng toàn điểm hình luôn tồn song ánh điểm hình phần tử vùng Chương Giới thiệu Hình 1.4 : Quá trình tạo hình ảnh tia quét Để thay đổi hình ảnh cần hiển thị, giá trị tương ứng với vị trí độ sáng phải đặt vào vùng đệm khung Hình minh họa giá trị tương ứng vùng đệm khung để hiển thị hình ảnh chữ A hình Hình 1.1: Song ánh vùng đệm khung hình Đối với hình đen trắng, vùng đệm khung gọi bitmap, với hình khác vùng đệm khung thường gọi pixmap Để tạo ảnh đen trắng, đơn giản cần lưu thông tin pixel bit (các giá trị 0, tượng trưng cho việc tắt (tối), bật (sáng) pixel hình) Trong trường hợp ảnh nhiều màu, người ta cần nhiều bit hơn, thông tin pixel lưu b bit, ta có 2b giá trị màu phân biệt cho pixel Trong hình màu, người ta định nghĩa tập màu làm việc bảng tra (LookUp Table - LUT) Mỗi phần tử LUT định nghĩa ba giá trị R (Red), G (Green), B (Blue) mô tả màu Khi cần sử dụng màu, ta cần định số thứ tự (index) tương ứng màu LUT Bảng LUT thay đổi ứng dụng người lập trình can thiệp điều khiển Với Chương Giới thiệu cách làm tiết kiệm không gian lưu trữ cho phần tử vùng đệm khung Số phần tử LUT xác định từ số lượng bits/pixel Nếu phần tử vùng đệm khung dùng b bits để lưu thông tin pixel, bảng LUT có 2b phần tử Nếu b=8, LUT có 28=256 phần tử, số màu hiển thị lúc hình Việc làm tươi hình dạng thực tốc độ 60 đến 80 frame/giây Đôi tốc độ làm tươi biểu diễn đơn vị Hertz (Hz – số chu kì/ giây), chu kì tương ứng với frame Sử dụng đơn vị này, mô tả tốc độ làm tươi 60 frame/giây đơn giản 60Hz IV.1.2 Các thiết bị nhập Bàn phím, Chuột, Bộ số hoá (digitizers), Máy quét hình (Image Scanner), Bút quang, Màn hình tiếp xúc (Touch – sensitive screen), nhập liệu giọng nói (Voice data entry), v.v IV.2 Phần mềm Phần mềm đồ họa phân thành loại : - Các công cụ lập trình - Các trình ứng dụng đồ họa Các công cụ lập trình cung cấp tập hàm đồ họa dùng ngôn ngữ lập trình cấp cao C, Pascal, … Ví dụ thư viện đồ họa ngôn ngữ C, Pascal hay GL (Graphics Library) Silicon Graphics Các hàm sở bao gồm việc tạo đối tượng sở hình ảnh đoạn thẳng, đa giác, đường tròn, …, thay đổi màu sắc, chọn khung nhìn, áp dụng phép biến đổi… Các ứng dụng đồ họa thiết kế cho người dùng lập trình viên, cho phép người dùng tạo đối tượng, hình ảnh, … mà không cần quan tâm tới việc chúng tạo Ví dụ Photoshop, AutoCAD, … Biểu diễn tọa độ Thông thường hệ đồ họa sử dụng hệ tọa độ Descartes để mô tả đối tượng Nếu tọa độ đối tượng mô tả hệ tọa độ khác tọa độ cầu, …, chúng phải chuyển tọa độ Descartes trước dùng Chương Đường & Mặt cong không gian 83 pir (u ) = (1 − u ) p ir −1 + up ir+−11 với r = 1, , m ; i = 0, , m − r pi0(u)=pi m p(u ) = ∑ C mi (1 − u ) m−i u i p i i =0 Các điểm tạo bước cuối p0m(u) gọi đường cong Bezier điểm p0, p1,…, pm Các điểm p0, p1,…, pm gọi điểm kiểm soát (control points) hay điểm Bezier (Bezier points) Và đa giác tạo điểm gọi đa giác kiểm soát (control polygon) hay đa giác Bezier (Bezier polygon) b) Biểu thức Bezier-Bernstain đường cong Bezier Công thức đường cong Bezier dựa (m+1) điểm p0, p1, , pm viết lại sau : m p(u ) = ∑ pi Bmi (u ) với Bmi (u ) = C mi (1 − u ) m −i t i gọi đa thức Bernstain i =0 C mi = m! i!(m − i)! Dễ dàng nhận thấy đa thức Bernstein B mi (u ) thành phần khai triển biểu thức ((1 − u ) + u ) m , tổng B mi (u ) có giá trị 1với giá trị u Các hàm B mi (u ) thường gọi hàm trộn (blending functions) vector p(u) xem "pha trộn" từ vector p0, p1, , pm Với giá trị u, đa thức Bernstein xác định tỉ lệ hay trọng lượng cho vector tương ứng Thông thường, số lượng điểm kiểm soát định tùy ý cho việc xây dựng đường cong Bezier, nhiên điều đòi hỏi tính toán phức tạp làm việc với hàm đa thức bậc cao Chúng ta khắc phục điều nhận xét: Một đường cong phức tạp ghép từ đoạn khác nhau, đoạn xây dựng đường cong Bezier có bậc nhỏ Việc tạo đường cong phức tạp cách ghép nối đoạn nhỏ cho phép người dùng kiểm soát thay đổi cục (local variation) đường cong tốt Vì đường cong Bezier qua hai điểm đầu cuối, nên dễ dàng kết hợp đoạn cong (liên tục bậc 0) Hơn nữa, đường cong Bezier có tính chất quan trọng tiếp tuyến với đường cong điểm đầu cuối nằm đường thẳng nối điểm với điểm kiểm soát kế GV Mai Cường Thọ Chương Đường & Mặt cong không gian 84 Do đó, để nhận liên tục bậc đoạn cong, ta cần đặt điểm kiểm soát cho điểm pn-1 pn đoạn cong trước điểm p0 p1 đoạn cong nằm đường thẳng I.7 Đường cong bậc SPLINE Nhận xét : Với đường cong Bezier, ta tạo dạng đường cong khác cách hiệu chỉnh điểm kiểm soát có dạng đường cong thỏa mãn yêu cầu đặt ban đầu Tuy nhiên, việc hiệu chỉnh thật không đơn giản chút ta quan sát trình mô tả hình (phía dưới), phần đường cong Bezier phần lại cần phải hiệu chỉnh thêm Chúng ta có điểm kiểm soát đường cong Bezier tạo từ chúng có nét liền so với đường cong mà ta cần phải vẽ có nét gạch đứt quãng Ta nhận thấy với u gần đường cong Bezier khớp so với đường cong cần vẽ lại lệch u gần Chúng ta di chuyển p2, p3 lên tí để đường cong Bezier khớp với đường cần vẽ, nhiên điều lại gây hiệu ứng làm cho phần đầu đường cong lệch GV Mai Cường Thọ Chương Đường & Mặt cong không gian 85 Như vậy, khó khăn ta thay đổi điểm kiểm soát toàn đường cong bị thay đổi theo Điều thật dễ hiểu tất đa thức Bernstein khác toàn đoạn [0,1] I.7.1 Khái niệm Trong công thức Bezier, sử dụng hàm trộn – hợp liên tục để xác định điểm kiểm soát tương đối Với điểm nội suy mức độ tương đối khác ma chuỗi phần tử nhỏ kết hợp với tạo đường cong đa hợp…… Ta biết, đa thức bậc đa thức có bậc thấp biểu diễn đường cong không gian Với phương pháp Hermite Bezier cần phải đưa vào vector tiếp tuyến điểm, việc làm bất tiện đường bậc đa hợp ta sử dụng điều kiện biên liên tục phép đạo hàm bậc hai điểm nối Và đường cong xác định gọi đường Spline bậc với phép đạo hàm liên tục bậc Giá trị đạo hàm đường cong xác định độ cong điểm nút đưa điều kiện biên cho đoạn đường cong…… I.7.2 Công thức đường cong bậc ba Spline Đường cong Spline qua m điểm cho trước mà đoạn đường bậc ba độc lập có độ dốc độ cong liên tục điểm kiểm soát (hay điểm nút) Pm-1 P0’ Pm-2 P1 Pm-1’ … P2 P0 Phân đoạn đường cong Spline Như vậy, với m điểm ta có (m-1) đoạn, với đoạn tồn vector hệ số (2 điều kiện biên, độ dốc, độ cong) Còn điều kiện cần phải thỏa mãn yêu cầu người sử dụng đưa vào độ dốc hay vector tiếp tuyến hai điểm đầu cuối (p0, pm-1) Để xây dựng đường cong Spline có tham số với m điểm nút ta có dãy giá trị tham số mà ta gọi vector nút GV Mai Cường Thọ Chương Đường & Mặt cong không gian 86 u = (u , u1 , , u m −1 ) với u = , u i +1 = u i + d i +1 d i khoảng cách điểm pi pi −1 Việc kết hợp đoạn cong Hermite bậc ba để mô tả đường cong mềm theo kiểu phân đoạn Spline phương pháp đơn giản hay gọi phương pháp Hermite nội suy Với phương pháp tham biến ui cho đoạn cong thứ i tập đoạn cong Hermite biến đổi khoảng → tồn đạo hàm bậc đoạn cong điểm nối Phương trình cho đoạn cong sử dụng lúc phương trình đường cong bậc Hermite p(u ) = U M H G H Với U M H bất biến không phụ thuộc vào thứ tự i đoạn cong [ p = p (u ) = u u 0 p0 1 0 p1 u − 3 − − 1 p ' p1 ' −2 ] Khả thay đổi ma trận GH, cách tính ma trận phải cho đảm bảo tính liên tục đạo hàm bậc hai toàn đường cong, hay cụ thể điểm nối đoạn nhằm đảm bảo độ trơn đường cong điểm nối Việc đảm bảo tính liên tục đạo hàm đạo hàm bậc hai đường cong điểm nối dễ dàng cách đặt p' 'i −1 (u i −1 = 1) đạo hàm bậc hai điểm cuối đoạn (i − 1) với p' 'i (u i = 0) đạo hàm bậc điểm đầu đoạn thứ i p' 'i −1 (1) = p ' ' i (0) Phương trình đoạn cong thứ i là: pi (u ) = a0i + a1i u + a 2i u + a 3i u Qua tính toán, ta có phương trình tính p' i sau: p'0 p' = p ' m− p' m −1 GV Mai Cường Thọ 1 1 0 1 1 −1 p' 3( p − p ) 3( p m−1 − p m−3 ) p ' m −1 Chương Đường & Mặt cong không gian 87 I.8 Đường cong B-Spline I.8.1 Cơ sở đường cong B-Spline Với Bezier hay Spline không cho phép thay đổi đường cong cách cục bộ, việc thay đổi vị trí điểm kiểm soát hay vector tiếp tuyến không ảnh hưởng trực tiếp đến độ dốc đường cong lân cận quanh điểm kiểm soát mà kéo theo ảnh hưởng đến phần tử lại đường cong Khi liên kết nhiều đoạn Bezier hay Hermite bậc đem lại lợi ích tính toán, yếu tố ràng buộc tính liên tục đạo hàm bậc cao điểm nối không cho điề khiển cục mong muốn Như vậy, khó khăn ta thay đổi điểm kiểm soát toàn đường cong bị thay đổi theo Điều thật dễ hiểu tất đa thức Bernstein khác toàn đoạn [0,1] Để giải toán ta sử dụng tập hàm trộn khác R0(u), R1(u), hàm Bmi (u ) trường hợp Bezier Các hàm trộn có giá mang (đoạn hàm lấy giá trị khác 0) phần đoạn [0, 1], giá mang chúng có giá trị Bằng cách này, đường cong phụ thuộc vào số điểm kiểm soát mà Các hàm trộn mà ta đề cập đến tập đa thức định nghĩa đoạn kề để nối lại với tạo nên đường cong liên tục Các đa thức gọi đa thức riêng phần (piecewise polynomials) Ví dụ ta định nghĩa hàm g(u) bao gồm ba đa thức a(u), b(u), c(u) sau : a (u ) = u 3 g (u ) = b(u ) = − u − 2 c(u ) = (3 − u )2 Giá mang g(u) [0,3], a(u) [0,1], b(u) [1,2], c(u) [2, 3] Đường cong B-Spline đường cong sinh từ đa giác kiểm soát mà bậc không phụ thuộc vào số đỉnh đa giác kiểm soát Với (m+1) điểm kiểm soát pi , vector nút u = (u , u1 , , u m ) đường B-Spline có dạng : m p (u ) = ∑ Bi ,k (u ) pi i =0 GV Mai Cường Thọ Chương Đường & Mặt cong không gian 88 Trong đó, Bi ,k (u ) hàm hợp B-Spline bậc (k-1), khác biệt B-Spline Bezier thể Trong đường Bezier bậc đa thức xác định số đoạn đường cong đó, với B-Spline bậc đường cong thỏa mãn độc lập với số điểm kiểm soát đường I.8.2 Biểu thức toán học B-Spline Với hàm B-Spline có bậc (k-1) xác định : Bi,k (u) = u − ui+1−k u −u Bi−1,k−1 (u) + i+1 Bi,k −1 (u) ui − ui+1−k ui+1 − ui+2−k 1 u ∈ [u i , u i +1 ] Bi ,1 = khác 0 Tính Bi , (u ) = u − u i −1 u −u Bi −1,1 (u ) + i +1 Bi ,1 u i − u i −1 u i +1 − u i GV Mai Cường Thọ Chương Đường & Mặt cong không gian 89 II Mặt cong không gian II.1 Dẫn nhập Các mặt cong đóng vai trò quan trọng thiết kế kỹ thuật, sản xuất lĩnh vực ứng dụng khác Từ vật dụng hàng ngày giầy dép, cốc, … đến sản phẩm đòi hỏi độ phức tạp vỏ xe ô tô, vỏ tầu, cánh máy bay,… Theo phương pháp thiết kế truyền thống, mặt cong thường biểu diễn hình chiếu vuông góc Như thực tế bề mặt biểu diễn lưới tập đường cong phẳng mặt phẳng chiếu tạo cho người sử dụng cảm giác ba chiều Trong việc thể đồ họa máy tính, việc biểu diễn bề mặt phát triển với việc sử dụng mô hình toán học ba chiều Thông thường người ta sử dụng kỹ thuật cho việc mô tả bề mặt, bao gồm: - Dựa vào việc xây dựng tạo bề mặt toán học điểm liệu - Dựa việc xây dựng nên bề mặt phụ thuộc vào biến số có khả thay đổi cách trực diện thông qua tương tác đồ họa Các phương pháp biểu diễn tham số sử dụng cho đường cong chương trước công cụ hiệu thiết kế mặt cong Bởi thường mặt cong không gian tạo tập hợp đường cong không gian Dạng tham số đường cong xác định phương trình giá trị vector sau: P(t ) = [x(t ), y(t ), z (t )] cần biến tham số ⇒ Để biểu diễn mặt cong, ta cần biến tham số phương trình giá trị vector Q(s, t ) = [x( s, t ), y( s, t ), z ( s, t )] Các vết đường cong biểu diễn mặt cong tạo cách giữ không đổi tham số thay đổi tham số Một loạt đường cong tạo theo hướng s t hình vẽ Giá trị tham số s t ràng buộc khoảng từ đến 1, GV Mai Cường Thọ Chương Đường & Mặt cong không gian 90 tập hợp đường cong theo hướng s là: P(0, t ) P(0.1, t ) P(0.9, t ) P(1, t ) Và tập đường cong theo hướng t là: P(s,0) P(s,0.2) P(s,0.9) P(s,1) Do đó, để tạo mặt cong cần phải tạo đường cong cấu tạo nên mặt cong Điều áp dụng cho mặt cong biểu diễn công thức giải tích mặt cong tự II.2 Các mặt cong tròn xoay Họ mặt cong đơn giản tạo thành phép quay đường cong phẳng quanh một trục Mọi điểm mặt cong tròn xoay hàm số tham số t θ Tham số t biểu diễn đối tượng xoay θ biểu diễn góc xoay P(t ,θ ) , đường cong phẳng quay (đường sinh) có phương trình tham số Q(t) = [x(t), y(t), z(t)] mặt cong tròn xoay tùy theo trục xoay mà có dạng khác P(t , θ ) = [x (t ) cos θ y (t ) z (t ) 1]. sin θ 0 − sin θ 0 cos θ 0 0 0 0 1 Ví dụ, trục quay oy, đường sinh nằm mặt phẳng xoy Q(t)=[ x(t), y(t), 0], nên P(t ,θ ) = [x(t ) cosθ y(t ) − x(t ) sin θ 1] Cụ thể mặt cầu, đường sinh có phương trình Q(t)= [R.cos t, R sin t, 0] mặt cầu P(t ,θ ) = [R cos t cosθ R sin t − R cos t sin θ 1] Các mặt cong tròn xoay thu cách xoay tròn đường cong tự do, Bezier B-spline, quanh trục Ví dụ trường hợp đường cong bậc ba, mặt cong tròn xoay biểu diễn ỏ dạng ma trận sau : P ( t ,θ ) = [t ][ M ][V ][TR ] θ Trong : [t] = ma trận tham số [M] =ma trận hệ số [V] = ma trận hình học [TR]θ = ma trận xoay tròn quanh trục z [TR ]θ cos θ = GV Mai Cường Thọ sin θ 0 0 0 0 0 1 Chương Đường & Mặt cong không gian 91 II.3 Phép quét hình Phép quét hình phương pháp tạo mặt cong cách dịch chuyển đường thẳng, phân đoạn đường cong, đa giác…dọc theo vòng quanh đường dẫn hướng định Các đường dẫn hướng đường thẳng đường cong Các nặt cong quét hình biểu diễn dạng tham số sau: P( s, t ) = Q(t ).[T ( s)] Trong Q(t) phương trình tham số đường dẫn hướng, [T(s)] phép quét hình dựa theo hình dạng đường dẫn hướng Phép quét hình bao gồm phép tịnh tiến, phép thay đổi tỉ lệ, phép xoay phối hợp phép biến hình này, hình Ví dụ đường dẫn hướng đường thẳng bắt đầu gốc toạ độ biểu diễn dạng tham số sau: x( s ) = as y ( s ) = bs , z ( s ) = cs GV Mai Cường Thọ 1 0 0 [T (s )]. 0 as bs cs 0 0 0 1 Chương Đường & Mặt cong không gian 92 Phép quét hình các đường cong tự thực tương tự Phương trình mặt cong định nghĩa bởi: P( s, t ) = [t ][M ][V ][T ( s)] Trong [T(s)] biểu diễn phép quét hình II.4 Các mặt cong tự Tương tự trường hợp đường cong, vài ặmt cong mô tả đầy đủ biểu diễn giải tích đề cập mục trước Trong số co mặt cong sử dụng thiết kế thân ô tô, vỏ tàu, cánh máy bay…Chúng thường biểu diễn loạt “ô lưới” giống cách ráp nối miếng vá thành chăn II.4.1 Mặt cong tham số bậc ba Mặt cong tham số bậc mở rộng đường cong Mặt cong tạo đường biên đường cong tham số bậc ba đường cong Hermite (Mặt cong Hermite mặt cong bậc tham biến qua điểm liệu góc bề mặt đường cong bậc ba qua chúng đường cong bậc ba Hermite.) phần bên xác định hàm liên kết trơn Hình 11.9 ô lưới Mỗi đường biên biểu diễn điểm cuối vector tiếp tuyến điểm cuối xác định phương trình 10.38, viết lại sau: [ P (t ) = t t2 P ( 0) −2 − 3 − − 1 P(1) t 1 0 P ' ( 0) 0 P' (1) 1 ] P (t ) = [t ][M H ][G H ] Phương trình tương tự nhận cho tham số s để xác định đường biên tương ứng theo hướng Ghi ma trận M sử dụng cho hai hướng tham số s t, giá trị P thay đổi phụ thuộc vào vị trí đường cong Việc định nghĩa đường cong biên cách riêng lẻ chưa thể định dạng hoàn toàn mặt cong Với đường biên, mặt cong khác định nghĩa hình dạng bên khác nhau, hình GV Mai Cường Thọ Chương Đường & Mặt cong không gian 93 Do đó, để định dạng hoàn toàn mặt cong, hình dạng bên vùng lân cận góc điều khiển vector xoắn (twist vector) Khi mặt cong bậc ba biểu diễn bởi: P (t ) = [s ][M H ][G H ][M ]H [t ]T T bao hàm tính toán hướng tham số Ma trận [M]H giống ma trận sử dụng cho đường cong ma trận [G]H biểu diễn sau: [G ]H P(0,0) P(0,1) Pt (0,0) Pt (0,1) P(1,0) P(1,1) P (1,0) P (1,1) t t = Ps (0,0) Ps (0,1) Pst (0,0) Pst (0,1) Ps (1,0) Ps (1,1) Pst (1,0) Pst (1,1) tách nhỏ sau: Vị trí góc Vector theo hướng t góc [G]H = Vector theo hướng s góc Tích vector góc Các dạng mặt cong khác thu cách thay đổi vị trí điểm góc, vector tiếp tuyến vector xoắn II.4.2 Mặt cong Bezier Mặc dù mặt cong tham số bậc ba công cụ thiết kế hiệu quả, chúng có khuyết điểm gí trị tiếp tuyến vector xoắn cung cấp cho người sử dụng không mang tính trực giác Ngược lại mặt cong Bezier dễ dàng tạo sửa chữa cách trực giác nhiều Mặt cong Bezier định nghĩa phép tạo phương trình đường cong đơn giản Tích tensơ dùng định nghĩa mặt cong tham số bậc ba áp dụng lần GV Mai Cường Thọ Chương Đường & Mặt cong không gian 94 với hai hướng tham số s t hình 11.3 Mọi điểm mặt cong định vị trí cách gán giá trị cho cặp giá trị tham số xác định phương trình: n m Q( s , t ) = ∑∑ Vi , j Bi , n ( s ) B j , m (t ) ≤ s, t ≤ i = j =0 Như trường hợp đường cong Bezier, Vi , j định nghĩa đỉnh điều khiển Bi ,n (s ), B j ,m (t ) hàm liên kết trơn Beinstein theo hướng s t Chú ý bậc hàm liên kết trơn không thiết phải theo hai hướng tham số Ví dụ bậc theo hướng s bậc hai theo hướng t Ví dụ hình 11.3 vector tiếp tuyến s=0 đường biên V11V12 V14V13 Tất vector tiếp tuyến khác Các điểm điều khiển nằm bên V22, V23, V32, V33 xác định hình dạng bên mặt cong (giống vector xoắn mặt cong Hermite) Người sử dụng cần di chuyển cách đơn giản điểm để điều chỉnh hình dạng mặt cong Phương pháp măng tính trực quan nhiều so với phương pháp sử dụng mặt cong Hermite, lý gặp phải khó khăn gán giá trị thích hợp cho vector tiếp tuyến vector xoắn Mặt cong Bezier biểu diễn dạng ma trận sau: Q( s, t ) = [ s ][ M ] B [V ] B [ M ]TB [t ]T dạng ma trận [ Q (s, t ) = s GV Mai Cường Thọ s2 t V0, V0,1 V0, V0,3 2 V V1,1 V1, V1,3 1, T t [M ]B s [M ]B V 2, V2,1 V2, V 2, t V3, V3,1 V3, V3, ] Chương Đường & Mặt cong không gian với [M ]B −1 3 = − 1 95 − 1 0 0 0 0 Dễ thấy để biểu diễn mặt cong Bezier ta cần phải xác định 16 điểm điều khiển Như đường cong Bezier việc tăng số lượng điểm điều khiển tự động tăng bậc mặt cong Cần phải sử dụng nhiều ô lưới Bezier để tạo mặt cong có bậc thấp, vấn đề lại chỗ cần phải đảm bảo tính liên tục dọc theo cạnh chung GV Mai Cường Thọ Chương Đường & Mặt cong không gian 96 hai ô lưới Một cách đơn giản để đảm bảo điều kiện cạnh điều khiển phải thẳng hàng cạnh chung II.4.3 Mặt cong B-Spline Các mặt cong B-spline, giống mặt cong Bezier biểu diễn bằng: n m Q( s , t ) = ∑∑ N i , k ( s ) N j ,l (t )Vi , j i =0 j =0 Trong Vi,j điểm điều khiển Ni,k(s), Nj,l(t) hàm liên kết trơn B-spline GV Mai Cường Thọ Chương Đường & Mặt cong không gian 97 Tài liệu tham khảo Donald Hearn, M Pauline Baker; Computer Graphics; Prentice-Hall, Inc., Englewood Cliffs, New Jersey , 1986 F.S.Hill; Computer graphics ; 1990 Vũ Mạnh Tường, Dương Anh Đức, Trần Đan Tjhư, Lý Quốc Ngọc Giáo trình Nhập môn đồ họa & xử lý ảnh.1995 VERA B.ANAND, người dịch TS Nguyễn Hữu Lộc Đồ họa máy tính Mô hình hóa hình học Nhà xuất Thành Phố Hồ Chí Minh - 2000 Foley, Van Darn, Feiner, Hughes, Phillips Introduction L'Infographie 1995 Lê Tấn Hùng, Huỳnh Quyết Thắng Kỹ thuật đồ họa Nhà xuất khoa học kỹ thuật, Hà nội - 2000 GV Mai Cường Thọ