1. Trang chủ
  2. » Giáo án - Bài giảng

bài giảng đồ họa kỹ thuật

99 514 0

Đ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

Định dạng
Số trang 99
Dung lượng 1,34 MB

Nội dung

Các ứng dụng tiêu biểu của kỹ thuật đồ họa Đồ họa máy tình là một trong những lĩnh vực lý thú nhất vàphát triển nhanh nhát của tin học.. Ứng dụng hoạt hình và nghệ thuật Trong lĩnh vực h

Trang 1

LỜI NÓI ĐẦU

Đồ họa máy tình (Computer Graphics) là một trong nhữngchương trính thông dụng nhất, nó đã góp phần quan trọng làm chogiao tiếp giữa con người và máy tình trở nên thân thiện hơn Giaodiện kiểu dòng lệnh đã được thay thế hoàn toàn bằng giao diện đồhọa, cùng với công nghệ đa phương tiện (multimedia) đã đưa ngànhCông nghệ thông tin sang một phiên bản mới

Đồ họa máy tình đã phát triển rất nhanh, nó được ứng dụngtrong nhiều lĩnh vực khoa học, công nghệ như y học, kiến trúc, giảitrì,…Đồ họa máy tình giúp chúng ta thay đổi cách cảm nhận và sửdụng máy tình, nó đã trở thành những công cụ trực quan không thểthiếu trong đời sống hàng ngày Ví vậy môn Đồ họa máy tình làmột môn học chình trong chuyên ngành Công nghệ thông tin ở cáctrường Đại học, Cao đẳng

Bài giảng này sẽ cung cấp đầy đủ thông tin về cơ sở lýthuyết đồ họa máy tình từ đơn giản nhất như các thuật toán vẽđường thẳng, đường tròn,…Tiếp đến là các kỹ thuật, các phép biếnđổi, phép quan sát trong không gian hai chiều, ba chiều Bài giảng

sẽ giúp sinh viên có thể độc lập xây dựng những phần mềm ứngdụng đồ họa

Trang 2

CHƯƠNG 1 TỔNG QUAN VỀ ĐỒ HỌA MÁY TÍNH

1.1 Giới thiệu tổng quan

Ngày nay, đồ họa máy tình được ứng dụng rộng rãi trongngành còng nghệ thông tin Khó mà tím được một ứng dụng thươngmại của còng nghệ thông tin không sử dụng một thành phần nào đócủa hệ đồ họa máy tình Đồ họa máy tình ở vị trì quan trọng tronglĩnh vực thiết kế và giao tiếp kỹ thuật Nó là cơ sở để chuyển đổicác giải pháp tình toán số sang thể hiện hính ảnh tự nhiên cho thiết

kế kỹ thuật hay muốn sáng tỏ một vấn đề phức tạp Đồ họa máytình biểu diễn được hính ảnh đối tượng, quan hệ, dữ liệu, vị trì …

Đồ họa máy tình còn có chức năng mô tả kìch thước của đối tượng,phân tìch dữ liệu Trong những thập niên cuối thế kỷ 20, sự pháttriển mạnh của những hệ đồ họa như CAD/CAM đã trở thành chuẩncòng nghiệp và trường học

1.1.1 Lịch sử phát triển của đồ họa máy tính

Trang 3

quan sát một cách trực quan vị trì của người lái trong khoang Ôngđặt tên cho phương pháp này là đồ hoạ máy tình (ComputerGraphics) Màn hính là thiết bị thông dụng nhất trong hệ đồ hoạ,các thao tác của hầu hết các màn hính đều dựa trên thiết kế ống tia

âm cực CRT (Cathode ray tube)

Khi đó giá để làm tươi màn hính là rất cao, máy tình xử lý chậm,đắt và không chắc chắn

(không đáng tin cậy)

Graphics: 1960-1970

- 1963 Ivan Sutherland (hội nghị Fall Joint Computer - lần đầu tiên

có khả năng tạo mới, hiển

thị và thay đổi được thực hiện trong thời gian thực trên màn CRT)

Hệ thống này được dùng để thiết kế mạch điện: CRT, LightPen (bútsáng), computer (chứa chương trính xử lý thông tin) Người sửdụng có thể vẽ mạch điện trực tiếp lên màn hính thong qua bútsáng

Graphics:1970-1980

Raster Graphics (đồ hoạ điểm) Bắt đầu chuẩn đồ hoạ vì dụ như:GKS(Graphics Kernel System): European effort (kết quả của châuâu), Becomes ISO 2D standard

Graphics: 1980-1990

Mục đìch đặc biệt về phần cứng, thiết bị hính học đồ hoạ Silicon.Xuất hiện các chuẩn còng nghiệp: PHIGS (ProgrammersHierarchical Interactive Graphics Standard) xác định các phươngpháp chuẩn cho các mô hính thời gian thực và lập trính hướng đốitượng

Trang 4

Giao diện người máy Human-Computer Interface (HCI)

Computer Graphics: 2000- nay

Ảnh hiện thực.các cạc đồ hoạ cho máy tính (Graphics cards forPCs), game boxes and game players Còng nghiệp phim ảnh nhờvào đồ hoạ máy tình (Computer graphics becoming routine inmovie industry): Maya (thế giới vật chất tri giác được)…

1.2 Các ứng dụng tiêu biểu của kỹ thuật đồ họa

Đồ họa máy tình là một trong những lĩnh vực lý thú nhất vàphát triển nhanh nhát của tin học Ngay từ khi xuất hiện nó đã cósức lôi cuốn mãnh liệt, cuốn hút rất nhiều người ở nhiều lĩnh vựckhác nhau như khoa học, nghệ thuật, kinh doanh và quản lý…Tìnhhấp dẫn của nó có thể được minh họa rất trực quan thông qua cácứng dụng của nó

1.2.1 Ứng dụng CAD/CAM

Hệ CAD/CAM (Computer Aided Design/Computer AidedManufacture System) là kỹ thuật đồ họa tập hợp các còng cụ, các kỹthuật giúp cho thiết kế các chi tiết và các hệ thống khác nhau như hệthống cơ, hệ thống điện, hệ thống điện tử

Trang 5

Hệ CAD/CAM thường được sử dụng để thiết kế các cao ốc, ô

tô, máy bay, tàu thủy, tàu vũ trụ, máy tình, trang trì mẫu vải,…Cácđối tượng được hiển thị dưới dạng các phác thảo của phần khung,

từ đó có thể thấy được toàn bộ hính dạng và các thành phần bêntrong của các đối tượng Người thiết kế sẽ dễ dàng nhận thấy ngaycác thay đổi của đối tượng khi tiến hành hiệu chỉnh các chi tiết haythay đổi góc nhín, … Các mô hính chiếu sáng, tô màu và tạo bóng

bề mặt sẽ được kết hợp tạo ra sản phẩm

Trang 6

Hình 1.1 Hỗ trợ thiết kế CAD/CAM

1.2.2 Ứng dụng biểu diễn thông tin

Đồ họa thường được sử dụng để giúp hiển thị số liệu mộtcách trực quan, có thể phát sinh các biểu đồ, đồ thị, …minh họa mốiliên hệ giữa các đối tượng với nhau hoặc tóm lược các dữ liệu về tàichình , thống kê, kinh tế, khoa học, toán học

Trang 7

Hình 1.2 Đồ họa biểu diễn thông tin

1.2.3 Ứng dụng hoạt hình và nghệ thuật

Trong lĩnh vực hoạt hính và nghệ thuật đồ họa bao gồm cáccòng cụ giúp cho các họa sĩ, các nhà thiết kế phim hoạt hính chuyênnghiệp làm các kỹ xảo hoạt hính, vẽ tranh…Vì dụ phần mềm 3DStudio, 3D Studio Max

Trang 8

Hình 1.3 Đồ họa trong hoạt hình và nghệ thuật

1.2.4 Ứng dụng đào tạo

Đồ họa ứng dụng trong đào tạo giúp mô phỏng cấu trúc củacác vật thể, tiến trính của các phản ứng hóa học, hoạt động của cácgói tin trên mạng máy tình, … trong việc hỗ trợ giảng dạy Các ứngdụng mô phỏng được dùng để kiểm tra trính độ người lái, huấnluyện phi còng, điều khiển giao thông, …

Trang 9

Hình 1.4 Đồ họa trong giáo dục

1.2.5 Ứng dụng xây dựng giao diện người dùng

Giao diện đồ họa thực sự là cuộc cách mạng mang lại sựthuận tiện và thoải mái cho người dùng ứng dụng Giao diệnWYSIWYG và WIMP đang được đa số người dùng ưa thìch nhờtình thân thiện dễ dùng Người dùng làm việc thông qua các biểutượng mô tả chức năng đó, không gian biểu tượng chiếm dụng ìthơn nhiều so với dùng văn bản, không gặp trở ngại về mặt ngônngữ, có thể làm việc dễ dàng với nhiều cửa sổ với nhiều dạng tàiliệu khác nhau cùng một lúc

Trang 10

Hình 1.5 Đồ họa xây dựng giao diện người dùng

1.2.6 Ứng dụng xây dựng bản đồ

Ứng dụng đồ họa giúp xây dựng bản đồ dễ dàng, thuận tiện,

từ những số liệu có sẵn, trong quá trính xử lý có thể xây dựng nhữngthuật toán để phân tìch hay tổng hợp, …

Trang 11

Hình 1.6 Đồ họa xây dựng bản đồ

1.2.7 Ứng dụng trong y tế

Hình 1.7 Đồ họa trong y tế

Trang 12

đồ họa đưa ra các chỉ dẫn thuật ngữ theo yêu cầu đồ họa ngườidùng Thư viện đồ họa thực hiện tương tác, làm cầu nối cho giaotiếp giữa người dùng và các thiết bị đơn giản hơn.

Hình 1.8 Hệ thống đồ họa

Một trong các yêu cầu chình của một hệ thống đồ họa là cácứng dụng, áp dụng cho nhiều hệ thiết bị, phải được phát triểnkhông phụ thuộc vào phần cứng Để có được điều đó, phải có tiêuchuẩn hóa cho môi trường đồ họa ở mức chức năng, bằng việccung cấp sự độc lập thiết bị và ngôn ngữ lập trính

Sự độc lập với thiết bị cho phép các chương trính ứng dụng

đồ họa chạy trên các dạng phần cứng khác nhau Nó được thựchiện thông qua thiết bị nhập xuất logic cung cấp cho phần mềmứng dụng thông qua thư viện đồ họa và ánh xạ thiết bị cụ thể

Trang 13

Cho tới nay, có những tiêu chuẩn đồ họa đã được pháttriển trong nhiều năm, bao gồm: GKS(Graphics KernelSystem

Trang 14

- 1985), được phát triển riêng cho các thiết bị nhập xuất 2 chiều.GKS-3D bổ sung thêm khả năng lập trính 3 chiều PHIGS(Programmer’s Hierarchical Graphics System - 1984) hay PHIGS+bao gồm khả năng lập trính không gian , tạo thành thao tác dữ liệu

đồ họa phức tạp …

Các tiêu chuẩn đồ họa thực tế là kết quả của việc chấp nhậntrong còng nghiệp các giao diện đặc trưng, được đề xuất bởi nhiềucòng ty và không nëu ra trong các tiêu chuẩn chình thức Đượcnhắc đến trong số này là hệ X-Windows, cung cấp một loạt cácchức năng nhập và thao tác đồ họa 2 chiều Sự mở rộng được bắtđầu vào giữa những năm 80 là hệ X-Windows 3 chiều

Để đảm bảo sự linh hoạt, các tiêu chuẩn đồ họa thiết lập choứng dụng các thay đổi tối thiểu, cho phép nó định địa chỉ các thiết

bị nhập xuất khác nhau Khởi đầu, người lập trính tạo ra một hệthống tọa độ mô hính, mô tả đối tượng gọi là hệ thống tọa độthực Tiếp theo, là hệ tọa độ tiêu chuẩn và hệ tọa độ thiết bị.Chương trính ứng dụng sẽ giao tiếp với hệ tọa độ chuẩn theo cáchthức phù hợp, không quan tâm đến thiết bị xuất được dùng Do đó,tạo ra sự độc lập với thiết bị trong việc tạo ra hính ảnh của đốitượng

1.3.1 Phần cứng đồ họa

Phần cứng đồ họa bao gồm các thành phần:

 CPU: Thực hiện các chương trính ứng dụng

 Bộ xử lý hiển thị (Display Processor): Thực hiện còng việc hiển thị dữ liệu đồ hoạ

Trang 15

 Bộ nhớ hệ thống (System Memory): Chứa các chương trính và dữ liệu đang thực hiện.

Trang 16

 Gói phần mềm đồ hoạ (Graphics Package): Cung cấpcác hàm đồ hoạ cho chương trính ứng dụng

 Phần mềm ứng dụng (Application Program): Phần mềm

đồ hoạ ứng dụng

 Bộ đệm ( Frame buffer): Chứa các hính ảnh hiển thị

 Bộ điều khiển màn hính (Video Controller): Điều khiểnmàn hính, chuyển dữ liệu dạng số ở frame buffer thànhcác điểm sáng trên màn hính

1.3.2 Phần mềm đồ họa

Phần mềm đồ họa bao gồm các các còng cụ lập trính cungcấp một tập các hàm đồ họa có thể được dùng trong các ngôn ngữlập trính cấp cao như C, Pascal, Các hàm cơ sở của nó bao gồmviệc tạo các đối tượng cơ sở của hính ả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 cácphép biến đổi

Các ứng dụng đồ họa được thiết kế cho những người dùngkhông phải là lập trính viên, cho phép người dùng tạo các đốitượng, hính ảnh, … mà không cần quan tâm tới việc chúng đượctạo ra như thế nào Vì dụ như là Photoshop, AutoCAD, …

Mục tiêu căn bản của các phần mềm đồ họa được chuẩn làtình tương thìch Khi các còng cụ được thiết kế với các hàm đồ họachuẩn, phần mềm có thể được di chuyển một cách dễ dàng từ hệphần cứng này sang hệ phần cứng khác và được dùng trong nhiềucài đặt và ứng dụng khác nhau

Chuẩn cho việc phát triển các phần mềm đồ họa đã ra đời đó

là GKS (Graphics Kernel System – Hệ đồ họa cơ sở) Hệ thống này

Trang 17

ban đầu được thiết kế cho tập các còng cụ đồ họa hai chiều, sau đó được phát triển và mở rộng cho đồ họa ba chiều.

Các hàm của GKS thực sự chỉ là các mô tả trừu tượng, độclập với bất kí ngôn ngữ lập trính nào Để cài đặt một chuẩn đồ họacho ngôn ngữ cụ thể nào, các cú pháp tương ứng sẽ được xác định

và cụ thể hóa

GKS xác lập được các ý tưởng ban đầu cho các hàm đồ họa

cơ sở, tuy nhiên nó không cung cấp một cách thức chuẩn cho việcgiao tiếp đồ họa với các thiết bị xuất Nó cũng không xác định cáccách thức cho các mô hính thời gian thực cũng như các cách thứclưu trữ và chuyển đổi hính ảnh

1.3.3 Hệ tọa độ thực, hệ tọa độ thiết bị và hệ tọa độ chuẩn

Trong lĩnh vực kỹ thuật đồ họa, chúng ta phải hiểu đượcrằng thực chất của đồ họa là làm thế nào để có thể mô tả và biến đổiđược các đối tượng trong thế giới thực trên máy tình Bởi ví,các đối tượng trong thế giới thực được mô tả bằng tọa độ thực.Trong khi đó, hệ tọa độ thiết bị lại sử dụng hệ tọa độ nguyên đểhiển thị các hính ảnh Đây chình là vấn đề cơ bản cần giải quyết.Ngoài ra, còn có một khó khăn khác là với các thiết bị khác nhau thí

có các định nghĩa khác nhau Do đó, cần có một phương phápchuyển đổi tương ứng giữa các hệ tọa độ và đối tượng phải đượcđịnh nghĩa bởi các thành phần đơn giản như thế nào để có thể mô tảgần đúng với hính ảnh thực bên ngoài

a Hệ tọa độ thực:

Một trong những hệ tọa độ thực thường được dùng để mô tảcác đối tượng trong thế giới thực là hệ tọa độ Descartes Với hệ tọa

Trang 18

P(Xp, Yp)Yp

độ này, mỗi điểm P được biểu diễn bằng một cặp tọa độ (Xp,Yp) với Xp, Yp ∈R (xem hình 1.9)

Ox : gọi là trục hoành; Oy : gọi là trục tung

.Xp : hoành độ điểm P; Yp: tung độ điểm P

Hình 1.9 Hệ tọa độ thực

b Hệ tọa độ thiết bị:

Hệ tọa độ thiết bị (device coordinates) được dùng cho mộtthiết bị xuất cụ thể nào đó, vì dụ như máy in, màn hính, Trong hệtọa độ thiết bị thí các điểm cũng được mô tả bởi cặp tọa độ (x,y).Tuy nhiên, khác với hệ tọa độ thực là x, y ∈ N Điều này có nghĩa

là các điểm trong hệ tọa độ thực được định nghĩa liên tục, còn cácđiểm trong hệ tọa độ thiết bị là rời rạc Ngoài ra, các tọa độ x, y của

hệ tọa độ thiết bị chỉ biểu diễn được trong một giới hạn nào đó củaN

c Hệ tọa độ thiết bị chuẩn:

Do cách định nghĩa các hệ tọa độ thiết bị khác nhau nên

Trang 19

một hình ảnh hiển thị được trên thiết bị này là chình xác thí chưachắc hiển thị chính xác trên thíết bị khác Người ta xây dựng một hệtọa độ thiết bị chuẩn đại diện chung cho tất cả các thiết bị để

có thể mô tả các hình ảnh mà không phụ thuộc vào bất kỳ thiết

bị nào Trong hệ tọa độ chuẩn, các tọa độ x, y sẽ được gán các giátrị trong đoạn từ [0,1] Như vậy, vùng không gian của hệ tọa độchuẩn chính là hình vuông đơn vị có góc trái dưới (0, 0) và góc phảitrên là (1, 1)

1.3.4 Hệ màu

Màu sắc được sử dụng trong các ứng dụng đồ họa máy tình

để giúp người dùng hiểu rõ về đối tượng hình học Các màn hình đồhọa sử dụng các Màu sắc chromatic Chúng dựa trên lý thuyết về bộnão người là Màu sắc ánh sáng được tiếp nhận như sự phối hợp từ 3Màu là đỏ (red), xanh lá cây (green), và anh dương (blue) Nóichung, Màu được mô tả bằng 3 thuộc tính là Màu sắc (hue), độ bãohòa (saturation), và độ sáng (brightness), chúng xác định vị trí trongquang phổ Màu, độ tinh khiết và cường độ sáng Có hàng loạt phươngpháp được tạo các mô hình Màu trong các ứng dụng đồ họa Trongphần này chỉ đưa ra những mô hình Màu tiêu biểu hơn cả, giúp tìmhiểu các ứng dụng đã lựa chọn Màu sắc thích hợp như thế nào

Trang 20

Hình 1.10 Mô hình màu

a.RGB (Red - Green - Blue):

Mô hình màu RGB mô tả màu sắc bằng 3 thành phầnchính là Red - Green và Blue Mô hính này được xem như mộtkhối lập phương 3 chiều với màu red là trục x, màu Green là truc

y, và màu Blue là trục z Mỗi màu trong mô hính này được xácđịnh bởi 3 thành phần R, G, B Ứng với các tổ hợp khác nhau của

3 màu này sẽ cho ta một màu mới

Trong hình lập phương trên, mỗi màu gốc (R,G,B) có các gốc đốidiện là các màu bù với nó Hai màu được gọi là bù nhau khi kết

Trang 21

hợp hai màu này lại với nhau ra Màu trắng Ví dụ : Green -

Magenta, Red - Cyan, Blue - Yellow

b.CMY (Cyan - Magenta - Yellow):

Tương tự như mô hính màu RGB nhưng 3 thành phầnchính là Cyan - Magenta - Yellow Do đó, tọa độ các màu trong

mô hính CMY trái ngược với mô hình RGB Ví dụ : màu White

có các thành phần là (0,0,0), màu Black (1,1,1), màu Cyan(1,0,0),

c HSV (Hue - Saturation - Value ):

Thực chất của mô hình này là sự biến đổi của mô hìnhRGB Mô hính HSV được mô tả bằng lệnh lập phương RGBquay trên đỉnh Black H (Hue) là góc quay trục V (value) qua 2đỉnh Black và White Các giá trị biến thiën của H, S, V như sau:(Hue) chỉ sắc thái có giá trị từ 00 - 3600 S (Saturation) chỉ độbão hoâ V (Value) có giá trị từ 0 - 1 Các Màu đạt giá trị bão hòakhi s = 1 và v = 1

2.1 Giới thiệu

CHƯƠNG 2 CÁC THUẬT TOÁN CƠ SỞ

Kỹ thuật đồ họa liên quan đến tin học và toán học bởi vìhầu hết các giải thuật vẽ, tô cùng các phép biến hình đều đượcxây dựng dựa trên nền tảng của hình học không gian hai chiều và

ba chiều Trong chương này, chúng ta giới thiệu các thuật toán vẽcác đường cơ bản như đường thẳng, đa giác, đường tròn, ellipse.Các thuật toán này giúp cho sinh viên hiểu được quá trình vẽ và

tô một đối tượng hình học cơ sở như thế nào

Trang 22

2.1.1 Các đối tượng đồ họa cơ sở

a Điểm

Điểm là thành phần cơ sở được định nghĩa trong một hệtọa độ, đối với hệ tọa độ 2 chiều mỗi điểm được xác định bởihoành độ và tung độ Ngoài thông tin tọa độ, điểm còn có thôngtin màu sắc

Ví dụ: Trong mặt phẳng, một điểm là một cặp (x,y)

Trong không gian ba chiều, một điểm là bộ ba (x,y,z)Trên màn hình của máy tính, một điểm là một vị trí trongvùng nhớ màn hính dùng để lưu trữ các thông tin về độ sáng củađiểm ứng trên màn hình

Số điểm vẽ trên màn hính được gọi là độ phân giải củamàn hính (320x200, 480x640)…

Cách hiển thị thông tin lên màn hính đồ họa:

Vùng đệm màn hình hay còn gọi là bộ nhớ hiển thị đượcbắt đầu từ địa chỉ A000h:$0000h Vì vậy, để hiển thị thông tin ra

Trang 23

màn hình thì ta chỉ cần đưa thông tin vào vùng đệm màn hình bắt đầu từ địa chỉ trên là được

b Đoạn thẳng, đường thẳng

Đường thẳng xác định qua 2 điểm, đoạn thẳng bị giới hạnbởi 2 điểm đầu và cuối Phương trình đường thẳng được xác địnhqua 2 điểm P(x1, y1) và Q(x2, y2) như sau:

d Vùng tô

Vùng tô: bao gồm đường biên và vùng bên trong, đường biên là đường khép kìn như đa giác lồi

e Ký tự, chuỗi ký tự

Ký tự cho phép hiển thị thông tin theo ngôn ngữ nào đó

2.1.2 Các thuộc tính của các đối tượng đồ họa cơ sở

 Điểm có thuộc tính màu sắc

Trang 24

y

 Đoạn thẳng, đường thẳng có thuộc tính màu sắc, độ rộng, kiểu nét

 Vùng tô có thuộc tính của đường thẳng, và thuộc tính riêng là mầu tô và mẫu tô

 Ký tự có thuộc tính màu sắc, kiểu chữ, cỡ chữ, khoảng cách giữa các ký tự, hướng hiển thị ký tự

2.2 Các thuật toán vẽ điểm, đường

2.2.1 Thuật toán vẽ đường thẳng

Xét đoạn thẳng có hệ số góc 0<m<=1 và Δx>0 Với cácx>0 Với cácđoạn thẳng dạng này, nếu (xi,yi) là điểm đã được xác định ở bướcthứ i thì điểm kế tiếp (xi+1, yi+1) ở bước thứ i+1 sẽ là một trong hai

2.2.2 Thuật toán DDA

Là thuật toán tình toán các điểm vẽ dọc theo đường thẳngdựa vào hệ số góc của phương trính đường thẳng y = mx+b

vẽ, còn việc quyết định chọn yi+1 là yi+1 hay yi sẽ phụ thuộc vào giá trị sau khi làm tròn của tung độ y Tuy nhiên, nếu tính trực tiếp

Trang 25

giá trị thực của y ở mỗi bước từ phương trính y = mx+b thí cần một

Trang 26

phép toán nhân và một phép toán cộng số thực:

 0<m<=1: xi +1 = xi - 1, yi +1 = yi - m → int(yi +1) (2-3)

 m>1: xi +1 = xi - 1/m → int(xi+1), yi +1 = yi- 1

Hình 2.1 Dạng đường thẳng tương ứng 2 khả năng của m.

Trang 27

Tương tự, có thể tình toán các điểm vẽ cho trường hợp m<0: khi |m|<=1 hoặc |m|>1 (sinh viên tự tìm hiểu thêm).

Tóm lại: Để vẽ đường thẳng theo thuật toán DDA làm như

sau:

 Nhập A(x1,y1), B(x2, y2)

 Tính Δx>0 Với cácx=x2 - x1 , Δx>0 Với các y =y2 - y1, m  y

x

 Điểm đầu tiên: x=x1, y=y1;

 Điểm tiếp theo: x=x1+1, y=y1+m Quá trình này lặp lại đến khi nào x>=x2 thì dừng

Hình 2.2 Giải thuật DDA để vẽ đường thẳng.

Trang 28

Ví dụ: Hãy tìm tọa độ các điểm sẽ nảy sinh của đoạn thẳngđược vẽ theo giải thuật DDA, nếu biết đoạn thẳng đi qua hai điểm làA(5, 10) và B(10, 15)

Theo thuật toán DDA ta có:

2.2.3 Thuật toán Bresenham

Giải thuật Bresenham theo nguyên lý tím ra các điểm gần vớiđường thẳng dựa trên đô phân giải hữu hạn Giải thuật này loại bỏ được các phép toán chia và phép toán làm tròn như ta đã thấy trong thuật toán DDA

Trang 30

= 2Δx>0 Với cácy(xi+1) - 2Δx>0 Với cácx.yi + Δx>0 Với cácx(2b - 1)

= 2Δx>0 Với cácy.xi - 2Δx>0 Với cácx.yi + 2Δx>0 Với cácy + Δx>0 Với cácx(2b - 1)

Vậy C = 2Δx>0 Với cácy + Δx>0 Với cácx(2b - 1) = Const

⇒ Pi = 2Δx>0 Với cácy.xi - 2Δx>0 Với cácx.yi + C (2-5)

Nhận xét rằng nếu tại bước thứ i ta xác định được dấu của Pi thì xem như ta xác định được điểm cần chọn ở bước (i+1) Ta có :

Pi +1 - Pi = (2Δx>0 Với cácy.xi+1 - 2Δx>0 Với cácx.yi+1 + C) - (2Δx>0 Với cácy.xi - 2Δx>0 Với cácx.yi + C )

⇔ Pi +1 = Pi + 2Δx>0 Với cácy - 2Δx>0 Với cácx ( yi+1 - yi )

 Nếu Pi < 0 : chọn điểm P1, tức là yi +1= yi và Pi +1= Pi + 2Δx>0 Với cácy

 Nếu Pi ≥ 0 : chọn điểm P2, tức là yi +1= yi +1

và Pi +1= Pi + 2Δx>0 Với cácy - 2Δx>0 Với cácx (2-6)

Giá trị P0 được tính từ điểm vẽ đầu tiên (xo, yo) theo công thức:

Po = 2Δx>0 Với cácy.xo - 2Δx>0 Với cácx.yo + C

Do (xo ,yo ) là điểm nguyên thuộc về đoạn thẳng nên ta có: yo

sử dụng còng thức truy hồi Pi +1 Pi để tính Pi bằng các phéptoán đơn giản trên số nguyên Tuy nhiên, việc xây dựng trường hợptổng quát cho thuật toán Bresenham có phức tạp hơn thuật toán

DDA

Trang 31

Tóm lại: Để vẽ đường thẳng theo thuật toán Bresenham cho trường hợp hệ số góc 0<m<1 như sau:

Trang 32

 Nhập A(x1,y1), B(x2, y2)

 Tính Δx>0 Với cácx=x2 - x1 , Δx>0 Với các y =y2 - y1, P=2Δx>0 Với cácy – Δx>0 Với cácx , C1=2Δx>0 Với cácy, C2=2(Δx>0 Với cácy– Δx>0 Với cácx)

 Điểm đầu tiên: x=x1, y=y1;

 Điểm tiếp theo:

x=x1+1, y=y1, Pi=Pi+C1 Nếu Pi<0

x=x1+1, y=y1+1, Pi=Pi+C2 Nếu Pi>0

 Quá trình tiếp tục cho đến khi x>=x2

Hình 2.4: Giải thuật Bresenham vẽ đường thẳng

Trang 33

Ví dụ:

Hãy tìm các hệ số p và tọa độ các điểm sẽ nảy sinh của đoạnthẳng được vẽ theo giải thuật Bresenham, nếu biết đoạn thẳng điqua hai điểm A(2,4) và B(5,8) với 0<m<=1

Theo thuật toán Bresenham

Điểm A3: x4=5, y4=7

Ví X4=Xb=5 nên quá trính sinh điểm dừng

Vậy có 2 điểm phát sinh khi vẽ đường thẳng theo thuật toán Bresenham

2.2.4 Thuật toán MidPoint

Thuật toán Midpoint đưa ra cách chọn điểm y

p+1 là y

phay y +1 dựa vào so sánh điểm thực Q(x +1,y) với trung

điểm M(x +1,y +1/2) của đoạn thẳng

Trang 34

Hình 2.5 Mô tả thuật toán MidPoint

Nếu Q nằm trên M thí chọn điểm NE(x +1, y +1)

Nếu Q nằm dưới M thí chọn điểm E(x +1,y )

Cơ sở toán học

F(x,y)<0 nếu (x,y) nằm phìa trên đường thẳng

F(x,y)= 0 nếu (x,y) thuộc đường thẳng

F(x,y)>0 nếu (x,y) nằm phìa dưới đường thẳng

Cách thực hiện: Đặt P p = F(M) = F(x p +1,y p +1/2)

Nếu Pp < 0 thí M nằm trên đường thẳng, chọn E

Nếu Pp >= 0 thí M nằm dưới hoặc thuộc đường thẳng, chọn NE

Trang 35

P gọi là tham số quyết định Dấu của nó sẽ quyết định lựa chọnp

điểm tiếp theo

PnewE = Pold + dy (vì A= dy)

Nếu chọn NE thì trung điểm mới: M (x +2, y +3/2)

Trang 36

trường hợp hệ số góc 0<m<1 như sau:

 Nhập A(x1,y1), B(x2, y2)

 Tính Δx>0 Với cácx=x2 - x1, Δx>0 Với các y =y2 - y1, D= Δx>0 Với các y – Δx>0 Với cácx/2

 Điểm đầu tiên: x=x1, y=y1;

 Điểm tiếp theo:

x=x1+1, y=y1, D=D+Δx>0 Với các y Nếu D<=0

x=x1+1, y=y1+1, D=D+Δx>0 Với các y - Δx>0 Với cácx Nếu D>0

 Quá trình tiếp tục cho đến khi x>=x2

Hình 2.6 Giải thuật MidPoint để vẽ đường thẳng

Trang 37

Vì dụ:

Cho 2 điểm A(20,10), B(24,13) Hãy xác định giá trị di, xi,

yi ở mỗi bước khi vẽ đoạn thẳng AB theo thuật toán Midpoint

Theo giải thuật MidPoint

Điểm A4: x5=24, y5=13

Vì X5=Xb=24 nên quá trính sinh điểm dừng

Vậy có 3 điểm phát sinh khi vẽ đường thẳng theo thuật toán MidPoint

2.3 Thuật toán vẽ đường tròn, elip

Trang 38

 

Hình2.7: Đường tròn với các điểm đối xứng

Trong hệ tọa độ Descartes, phương trình đường tròn bán kính R có dạng:

Trang 39

Do tình đối xứng của đường tròn C, nên ta chỉ cần vẽ 1/8cung tròn, sau đó lấy đối xứng qua 2 trục tọa độ và 2 đường phângiác thì ta vẽ được cả đường tròn.

Trang 40

2.3.1 Thuật toán xét trung điểm

Hình 2.8 Đường tròn với điểm Q(xi +1, y) và trung điểm.

Thuật toán trung điểm đưa ra cách chọn yi+1 là yi hay yi -1bằng cách so sánh điểm Q(xi+1,y) với điểm giữa là trung điểm(Midpoint) của S1 và S2 Chọn điểm bắt đầu để vẽ là (0,R) Giả sử(xi, yi) là điểm nguyên đã tím được ở bước thứ i (xem hình 2.7), thìđiểm (xi+1, yi+1) ở bước i+1 là sự lựa chọn giữa S1 và S2

 F(x,y) < 0 , nếu điểm (x,y) nằm trong đường tròn

 F(x,y) = 0 , nếu điểm (x,y) nằm trên đường tròn

Ngày đăng: 12/12/2017, 14:53

TỪ KHÓA LIÊN QUAN

w