1. Trang chủ
  2. » Công Nghệ Thông Tin

GIÁO TRÌNH kỹ THUẬT đồ họa

16 475 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

Cấu trúc

  • GIÁO TRÌNH KỸ THUẬT ĐỒ HỌA

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

    • Hệ tọa độ thế giới thực

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

    • Hệ tọa độ thiết bị chuẩn (Normalized device coordinates)

    • Thuật toán vẽ đoạn thẳng

      • Thuật toán DDA (Digital DifferentialAnalyzer)

      • Thuật toán Bresenham

    • Thuật toán vẽ đường tròn

      • Thuật toán đơn giản

      • Thuật toán xét điểm giữa (MidPoint)

      • Vẽ đường tròn bằng thuật toán Bresenham

      • Thuật toán vẽ Ellipse

      • Vẽ đường conics và một số đường cong khác

      • Vẽ đa giác

      • Bài tập

Nội dung

GIÁO TRÌNH kỹ THUẬT đồ họa kỹ thuật đồ họa đồ họa với dev c++

GIÁO TRÌNH K ỸTHU Ậ T ĐỒ H Ọ A H ệt ọ a độ th ếgi i th ự c, h ệt ọ a độ thi ế t b ị h ệt ọ a độ chu ẩ n Một hệ mềm đồ họa mô tả bao gồm miền sau : • • Miền điều khiển : bao bọc toàn hệ thống Miền thực : nằm miền điều khiển Khi số thâm nhập vào miền thực, chuyển thành số thực dấu phẩy động, có số rời khỏi miền chuyển thành số nguyên có dấu 16 bits • Miền hiển thị : nằm miền điều khiển phân biệt với miền thực Chỉ có số nguyên 16 bits nằm miền hiển thị Trong lĩnh vực kỹ thuật đồ họa, phải hiểu thực chất đồ họa làm để mô tả biến đổi đối tượng giới thực máy tính Bởi vì, đối tượng giới thực mô tả tọa độ thực Trong đó, hệ tọa độ thiết bị lại sử dụng hệ tọa độ nguyên để hiển thị hình ảnh Đây vấn đề cần giải Ngoài ra, có khó khăn khác với thiết bị khác có định nghĩa khác Do đó, cần có phương pháp chuyển đổi tương ứng hệ tọa độ đối tượng phải định nghĩa thành phần đơn giản để mô tả gần với hình ảnh thực bên Hai mô hình ứng dụng đồ họa dựa mẫu số hóa dựa đặc trưng hình học Trong ứng dụng đồ họa dựa mẫu số hóa đối tượng đồ họa tạo lưới pixel rời rạc Các pixel đuợc tạo chương trình vẽ, máy quét, Các pixel mô tả tọa độ xác định vị trí giá trị mẫu Thuận lợi ứng dụng dể dàng thay đổi ảnh cách thay đổi màu sắc hay vị trí pixel, di chuyển vùng ảnh từ nơi sang nơi khác Tuy nhiên, điều bất lợi xem xét đối tượng từ góc nhìn khác Ứng dụng đồ họa dựa đặc trưng hình học bao gồm đối tượng đồ họa sở đoạn thẳng, đa giác, Chúng lưu trữ mô hình thuộc tính Ví dụ : đoạn thẳng mô hình hai điểm đầu cuối, có thuộc tính màu sắc, độ dày Người sử dụng không thao tác trực tiếp pixel mà thao tác thành phần hình học đối tượng Hệ tọa độ giới thực Một hệ tọa độ thực thường dùng để mô tả đối tượng giới thực hệ tọa độ Descartes Với hệ tọa độ này, điểm P biểu diễn cặp tọa độ (xp,yp) với xp, yp ∈R (xem hình 1) Hệ tọa độ thực Ox : gọi trục hoành Oy : gọi trục tung xp : hoành độ điểm P yp : tung độ điểm P Hệ tọa độ thiết bị Hệ tọa độ thiết bị (device coordinates) dùng cho thiết bị xuất cụ thể đó, ví dụ máy in, hình, Trong hệ tọa độ thiết bị điểm mô tả cặp tọa độ (x,y) Tuy nhiên, khác với hệ tọa độ thực x, y ∈ N Điều có nghĩa điểm hệ tọa độ thực định nghĩa liên tục, điểm hệ tọa độ thiết bị rời rạc Ngoài ra, tọa độ x, y hệ tọa độ thiết bị biểu diễn giới hạn N Độ phân giải hình chế độ đồ họa 640x480 Khi đó, x∈(0,640) y∈(0,480) (xem hình 2) Hệ tọa độ hình Hệ tọa độ thiết bị chuẩn (Normalized device coordinates) Do cách định nghĩa hệ tọa độ thiết bị khác nên hình ảnh hiển thị thiết bị xác chưa hiển thị xác thíết bị khác Người ta xây dựng hệ tọa độ thiết bị chuẩn đại diện chung cho tất thiết bị để mô tả hình ảnh mà không phụ thuộc vào thiết bị Trong hệ tọa độ chuẩn, tọa độ x, y gán giá trị đoạn từ [0,1] Như vậy, vùng không gian hệ tọa độ chuẩn hình vuông đơn vị có góc trái (0, 0) góc phải (1, 1) Quá trình mô tả đối tượng thực sau (xem hình 3): Hệ tọa độ hình Thuật toán vẽ đo ạn thẳng Xét đoạn thẳng có hệ số góc 0= : chọn yi+1 = yi - Khi Pi+1 = Pi + 4(xi - yi ) + 10 - P0 ứng với điểm ban đầu ( x0 , y0 ) = (0,R) là: P0= - 2R Minh họa thuật toán vẽ đường tròn Bresenham Procedure DTR_BRES(xc,yc,r,mau: integer); var x,y,p:integer; begin x:=0; y:=r; p:= 3- 2*r; while( x : dạng hyperbol Áp dụng ý tưởng thuật toán Midpoint để vẽ đường conics số đường cong khác theo bước theo bước sau: • • Bước 1: Dựa vào dáng điệu phương trình đường cong, để xem thử rút gọn phần đường cong cần vẽ hay không Bước 2: Tính đạo hàm, từ phân thành vùng vẽ + Nếu ≤ f '(x) ≤ : xi+1 = xi + 1; yi+1 = yi (hoặc = yi +1) + Nếu -1≤ f '(x) ≤ : xi+1 = xi + 1; yi+1 = yi (hoặc = yi - 1) + Nếu f '(x) > : yi+1 = yi + 1; xi+1 = xi (hoặc = xi +1) + Nếu f '(x) < -1 : yi+1 = yi + 1; xi+1 = xi (hoặc = xi +1) • • • Bước : Tính Pi cho trường hợp để định f '(x) dựa dấu P i Pi thường hàm xây dựng từ phương trình đường cong Cho Pi=0 (xi , yi) thuộc đường cong Việc chọn Pi cần ý cho thao tác tính Pi sau hạn chế phép toán số thực Bước : Tìm mối liên quan Pi+1 Pi cách xét hiệu Pi+1 - Pi Bước : Tính P0 hoàn chỉnh thuật toán Vẽ đa giác • Hai dạng đường gấp khúc Định nghĩa đa giác(Polygone): Đa giác đường gấp khúc kín có đỉnh đầu đỉnh cuối trùng (xem hình 13) • Xây dựng cấu trúc liệu để vẽ đa giác • Type • d_dinh = record x,y: longint; • var • end; • dinh = array[0 10] of d_dinh; • d: dinh; Với cách xây dựng cấu trúc liệu cần nhập vào tọa độ đỉnh sau gọi thủ tục vẽ đường thẳng qua đỉnh (0, 1), (1,2), , (n-1, n), đỉnh n trùng với đỉnh ta vẽ toàn đa giác • Đa giác gọi lồi đường thẳng qua cạnh đa giác toàn đa giác nằm phía đường thẳng Ngược lại, tồn cạnh đa giác chia đa giác làm phần gọi đa giác lõm (xem hình 14) Đa giác lồi đa giác lõm • o Thuật toán kiểm tra đa giác lồi hay lõm Thuật toán 1: Lần lượt thiết lập phương trình đường thẳng qua cạnh đa giác Ứng với phương trình đường thẳng, xét xem đỉnh lại có nằm phía đường thẳng hay không ? Nếu kết luận đa giác lồi, ngược lại đa giác lõm Nhận xét : Phương trình đường thẳng y = ax + b chia mặt phẳng làm phần Các điểm nằm C(xc,yc) đường thẳng có yc > axc + b điểm D(xd,yd) nằm phía đường thẳng có yd < axd + b Cho đường thẳng AB có phương trình y = độ C(0,4), D(2,0) ( xem hình 15) Đường thẳng AB điểm C, D Yd=0 < axd + b= 12 + Vậy hai điểm C, D nằm hai phía đường thẳng AB o Thuật toán Nhận xét: Trong mặt phẳng Oxy, cho véc tơ a⃗ b⃗ , Tích vô hướng véc tơ : a⃗ quẹo trái sang b⃗ T ≥0 a⃗ quẹo phải sang b⃗ T < Một đa giác lồi dọc theo biên theo hướng mà Nghĩa quẹo phải hay quẹo trái Ngược lại đa giác lõm (xem hình 16) Đa giác lồi có đỉnh Xét đa giác gồm đỉnh P0, P1 , Pn , ( P0 = Pn ) , n ≥ (xem hình 16) Tính Vi = Pi+1 - Pi , ∀i = 0, 1, , n-1 Tính Ti = T( Vi , Vi+1 ) Nếu với Ti dấu kết luận đa giác lồi Ngược lại, đa giác lõm Bài tập Viết chương trình vẽ bầu trời có 10.000 điểm sao, điểm xuất với màu ngẫu nhiên Những điểm lên từ từ tắt ngẫu nhiên Viết chương trình thực thao tác sau : - Khởi tạo chế độ đồ họa, đặt màu nền, đặt màu chữ, định dạng chữ (settextstyle(f,d,s)), xuất chuổi ký tự hình Đổi font, hướng, kích thước - Xuất chuổi hình, chuổi có tô bóng (lưu ý nội dung chuổi ký tự, màu tô, màu bóng nhập từ bàn phím) Viết chương trình vẽ đoạn thẳng AB với màu color theo giải thuật DDA Biết tọa độ A,B, color nhập từ bàn phím Trang trí màu nền, ghi tọa độ A, B hai đầu đoạn thẳng Tương tự tập sử dụng giải thuật Bresenham Lưu ý trường hợp đặc biệt hệ số góc Tổng hợp tập 4, viết chương trình vẽ đường thằng giải thuật Bresenham cho tất trường hợp hệ số góc Lưu ý xét trường hợp đặc biệt đường thẳng song song với trục tung hay với trục hoành Viết chương trình nhập tọa độ điểm A, B, C từ bàn phím Tìm tọa độ điểm D thuộc AB cho CD vuộng góc AB Vẽ đoạn thẳng AB CD Viết chương trình xét vị trí tương đối đoạn thẳng AB CD Biết hình đồ họa đoạn thẳng AB CD gọi cắt hai điểm A, B hai phía CD ngược lại Viết chương trình vẽ đường tròn theo giải thuật đơn giản ( đối xứng ) Viết chương trình vẽ đường tròn theo giải thuật Bresenham 10 Viết chương trình vẽ đường tròn theo giải thuật MidPoint 11 Viết chương trình vẽ đường tròn tâm O bán kính R Vẽ đường tròn đồng tâm với O, có bán kính chạy từ đến R Sau xoá đường tròn đồng tâm vẽ đường tròn đồng tâm khác từ R đến 12 Viết chương trình vẽ đường tròn tâm O bán kính R Hãy vẽ đoạn thẳng từ tâm O độ dài R Hãy quay đoạn thẳng quanh đường tròn 13 Viết chương trình vẽ Elippse 14 Viết chương trình vẽ Elippse có bán kính lớn a, bán kính nhỏ b đường tròn nội tiếp Elippse Tô đường tròn đường tròn đồng tâm Sau tô elippse elippse đồng tâm có bán kính lớn chạy từ b đến a, bán kính nhỏ b 15 Viết chương trình vẽ hình chữ nhật, hình vuông hình bình hành Yêu cầu thích tọa độ đỉnh 16 Viết chương trình vẽ tam giác Tọa độ đỉnh nhập từ bàn phím, cạnh có màu khác 17 Viết chương trình vẽ đa giác có n đỉnh 18 Viết chương trình xét tính lồi lõm đa giác cách thiết lập phương trình đường thẳng qua cạnh đa giác 19 Viết chương trình xét tính lồi lõm đa giác cách thiết lập véc tơ phương cạnh [...]... đối xứng ) 9 Viết chương trình vẽ đường tròn theo giải thuật Bresenham 10 Viết chương trình vẽ đường tròn theo giải thuật MidPoint 11 Viết chương trình vẽ một đường tròn tâm O bán kính R Vẽ các đường tròn đồng tâm với O, có bán kính chạy từ 1 đến R Sau đó xoá các đường tròn đồng tâm này và vẽ các đường tròn đồng tâm khác đi từ R đến 1 12 Viết chương trình vẽ một đường tròn tâm O bán kính R Hãy vẽ một... chương trình nhập tọa độ 3 điểm A, B, C từ bàn phím Tìm tọa độ điểm D thuộc AB sao cho CD vuộng góc AB Vẽ đoạn thẳng AB và CD 7 Viết chương trình xét vị trí tương đối của 2 đoạn thẳng AB và CD Biết rằng trong màn hình đồ họa đoạn thẳng AB và CD được gọi là cắt nhau khi hai điểm A, B ở về hai phía của CD và ngược lại 8 Viết chương trình vẽ đường tròn theo giải thuật đơn giản ( đối xứng ) 9 Viết chương trình. .. chương trình vẽ Elippse 14 Viết chương trình vẽ Elippse có bán kính lớn là a, bán kính nhỏ là b và một đường tròn nội tiếp Elippse Tô đường tròn bằng các đường tròn đồng tâm Sau đó tô elippse bằng các elippse đồng tâm có bán kính lớn chạy từ b đến a, bán kính nhỏ là b 15 Viết chương trình vẽ một hình chữ nhật, một hình vuông và một hình bình hành Yêu cầu chú thích tọa độ các đỉnh 16 Viết chương trình. .. x0 , y0 ) = (0,R) là: P0= 3 - 2R Minh họa thuật toán vẽ đường tròn bằng Bresenham Procedure DTR_BRES(xc,yc,r,mau: integer); var x,y,p:integer; begin x:=0; y:=r; p:= 3- 2*r; while( x

Ngày đăng: 19/06/2016, 00:53

TỪ KHÓA LIÊN QUAN

w