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

(TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d

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

Tiêu đề Chương Trình Mô Phỏng Bàn Cờ 2D
Tác giả Nguyễn Đức Long, Lã Quốc Nghị, Cao Hoài Nam, Phạm Quang Ánh
Người hướng dẫn Thầy. Ngô Trường Giang
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo chuyên đề
Năm xuất bản 2020
Thành phố Hà Nội
Định dạng
Số trang 36
Dung lượng 711,8 KB

Cấu trúc

  • A. MỞ ĐẦU (5)
  • B. NỘI DUNG (6)
  • Chương I: ĐỒ HỌA HAI CHIỀU (6)
    • 1. Vẽ đường thẳng (6)
    • 2. Vẽ đường tròn (16)
    • 3. Thuật Toán Tô Màu Tràn (27)
    • 4. Thuật toán tô màu theo đường quét (30)
  • Chương II: Phát Triển Ứng dụng Đồ Họa 2D (33)
    • 1. Phát biểu bài toán (33)
    • 2. Các bước giải quyết (33)
    • 3. Kết quả thực nghiệm (33)
    • C. Kết Luận (34)

Nội dung

NỘI DUNG

1 Vẽ đường thẳng a Thuật toán Bressenham

Thuật toán Bresenham xác định điểm y i + 1 bằng cách so sánh khoảng cách giữa điểm thực y với hai điểm kề gần nhất Điểm nào gần với điểm thực hơn sẽ được chọn làm điểm vẽ tiếp theo.

Gọi y là giá trị thực (giá trị chính xác) của đường thẳng tại x ở bước thứ i +

Gọi d 1 là khoảng cách từ y đến y i

Gọi d 2 là khoảng cách từ y đến y i + 1

ĐỒ HỌA HAI CHIỀU

Vẽ đường thẳng

Thuật toán Bresenham xác định điểm y i + 1 bằng cách so sánh khoảng cách giữa điểm thực y với hai điểm lân cận Điểm nào gần với điểm thực hơn sẽ được chọn làm điểm vẽ tiếp theo.

Gọi y là giá trị thực (giá trị chính xác) của đường thẳng tại x ở bước thứ i +

Gọi d 1 là khoảng cách từ y đến y i

Gọi d 2 là khoảng cách từ y đến y i + 1

Dễ dàng nhận thấy rằng phép toán giữa d 1 và d 2 có thể được thực hiện với số thực m = Để đảm bảo tuân thủ đúng nguyên tắc của thuật toán chỉ sử dụng các phép toán trên số nguyên, ta cần khử phân số bằng cách nhân cả hai vế với dx Do đó, ta đặt P i = dx(d 1 – d 2).

Thay vào phương trình trên ta được:

P i = 2dyx i – 2dxy i + c với c = 2dy + (2b - 1)dx Mặt khác dx ≥ 0 với mọi trường hợp

⇨ dấu của P i cùng dấu với d 1 – d 2

Khi xem xét khoảng cách giữa các điểm thực y i + 1 và y i, giả sử khoảng cách này là p Mỗi khi x tăng thêm 1 đơn vị, khoảng cách p sẽ cộng thêm một giá trị c nào đó Tuy nhiên, sự thay đổi của khoảng cách p không diễn ra theo cách tuyến tính, vì vậy cần tìm ra công thức tổng quát cho các trường hợp, cụ thể là P i + 1 = ? P i.

Hình 1.6 Thuật toán Midpoint đưa ra cách chọn điểm y i + 1 là y i hay y i + 1 bằng cách so sánh điểm thực Q(x i + 1 , y) với điểm Midpoint là trung điểm của S và

P Nếu điểm Q nằm dưới điểm Midpoint thì ta chọn điểm S là điểm vẽ tiếp theo Ngược lại, nếu điểm Q nằm trên điểm Midpoint thì ta chọn P Ta có dạng tổng quát của PT đường thẳng:

Vị trí tương đối của điểm Midpoint (x, y) với đường thẳng:

+ 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 về đường thẳng

+ F(x, y) > 0 nếu (x, y) nằm phía dưới của đường thẳng Lúc này việc chọn các điểm S, P ở trên được đưa về việc xét dấu của p i + 1 – p i = 2F(x i + 1 + 1, y i + 1 + ) – 2F(x i + 1, y i + )

Vậy p i + 1 = p i + 2Dy nếu p i < 0 do ta chọn y i + 1 = y i p i + 1 = p i + 2Dy – 2Dx nếu p i ≥ 0 do ta chọn y i + 1 = y i + 1

Ta tính giá trị p 1 ứng với điểm ban đầu (x 1 , y 1 ) với nhận xét rằng điểm

(x 1 , y 1 ) là điểm thuộc đường thẳng, tức là có Ax 1 + By 1 + C = 0 p ⇨ 1 = 2F(x 1 + 1, y 1 + ) = 2[A(x 1 + 1) + B(y 1 + ) + C] ⇨ p 1 = 2(Ax 1 + By 1 + C) + 2A + B p = 2A + B

Ta thấy kết quả của thuật toán Midpoint tương tự thuật toán Bresenham như đã nói ở trên.

Giống của thuật toán Bresenham

Vẽ đường tròn

Giả sử (x i , y i ) đã vẽ được, điểm kế tiếp là (x i + 1, y i ) hoặc (x i +1, y i -1)

Hình 1.10 là: Từ phương trình: x 2 + y 2 = R 2 ta tính được giá trị y thực ứng với x i + 1 y 2 = R 2 - (x i + 1) 2 Đặt: d 1 = y i 2 - y 2 = y i 2 - R 2 + (x i + 1) 2 d 2 = y 2 - (y i - 1) 2 = R 2 - (x i + 1) 2 - (y i - 1) 2

Nếu : chọn p i ≥ 0 y i + 1 = y i –1 (4) ⇒ p i + 1 = p i + 4(x i - y i ) + 10 Ta chọn điểm đầu tiên cần vẽ (0, R), (2) ta có: p 1 = 3 - theo

Tóm lại: Ta có thuật toán vẽ đường tròn:

• Bước 1: Chọn điểm đầu tiên cần vẽ (x 1 , y 1 ) = (0, R)

• Bước 2: Tính P đầu tiên: p 1 = 3 - 2R Nếu p < 0: chọn điểm kế tiếp là (x i +1, y i ) Ngược lại chọn ủiểm (x i + 1,y i - 1)

Ngược lại: p i + 1 = p i + 4(x i - y i ) + 10 Khi đó: Nếu p i + 1 < 0: chọn điểm kế tiếp là(x i + 1 , y i + 1 ) Ngược lại chọn điểm (x i + 1 , y i + 1 -1)

• Bước 4: Lặp lại bước 3 cho đến khi x = y.

Thuật toán Đường tròn có tâm O(xc, yc) = (0, 0), bán kinh r có phương trình: x 2 + y 2 = r 2 => x 2 + y 2 - r 2 = 0 Đặt f(x, y) = x 2 + y 2 - r 2

Với mọi điểm P(x, y) nằm trong hệ tọa độ Oxy, ta có:

P(x, y) nằm trên đường tròn O nếu f(x, y) = 0

P(x, y) nằm ngoài đường tròn O nếu f(x, y) > 0

P(x, y) nằm trong đường tròn O nếu f(x, y)< 0

Đường tròn có tính đối xứng qua các cung 1/8, cho phép xác định tọa độ của một điểm (x, y) thuộc một cung nào đó.

Trong cung 1/8 thứ nhất do khoảng biến thiên của x lớn hơn khoảng biến thiên của y, nên xi+1 = xi + 1.

Giả sử ta đã vẽ được (Xi, Yi) ở bước thứ i, ta cần xác định (Xi+1, Yi+1) ở bước thứ i + 1.

Ta có hình như sau:

Hình 1.15 Tính F i Đặt Fi = F(X, Y - 1/2), ta hình có công thức:

Nếu Fi >= 0 (Xi + 1, Y) gần với Yi - 1 => Yi + 1 = Yi -1

Fi + 1 - Fi = 2Xi + 3 + (Yi+12 - Yi2) + (Yi+1 - Yi) (*)

Nếu Fi < 0 thì Fi + 1 = Fi + 2Xi + 3, do ta thay thế Yi+1 = Yi vào (*)

Nếu Fi >= 0 thì Fi + 1 = Fi + 2(Xi - Yi) + 5, do thay thế Yi+1 = Yi -1 vào (*) Tính giá trị F đầu tiên

Thay Xi = 0 và Yi = R trong công thức trên ta có được: F = 5/4 - R

Thuật Toán Tô Màu Tràn

Đường biên trong thuật toán tô loang được xác định bởi các đỉnh của một đa giác và được biểu diễn bằng màu sắc chung của các điểm trên đường biên Thuật toán bắt đầu từ một điểm bên trong vùng tô, kiểm tra các điểm lân cận để xác định xem chúng đã được tô màu hay là điểm biên Nếu điểm lân cận không được tô và không nằm trên đường biên, nó sẽ được tô màu Quá trình này lặp lại cho đến khi không còn điểm nào có thể tô thêm.

Hình 1.19 -Bước 1: Kẻ vùng biên cần tô.

-Bước 2: Xác định một điểm (x,y) bên trong vùng cần tô.

-Bước 3: Tô điểm (x,y) sau đó tô loang những điểm lân cận.

Thuật toán tô màu theo đường quét

Mỗi dòng quét sẽ xác định phần giao của đa giác và dòng quét, sau đó tô màu các pixel thuộc đoạn giao đó Để tìm các đoạn giao, ta xác định giao điểm của dòng quét với các cạnh của đa giác và sắp xếp chúng theo thứ tự hoành độ Các đoạn giao được hình thành từ các đoạn thẳng giới hạn bởi từng cặp giao điểm.

Để tìm ymin và ymax, ta xác định giá trị nhỏ nhất và lớn nhất trong tập các tung độ của các đỉnh của đa giác Đối với mỗi dòng quét y = k, với k thay đổi từ ymin đến ymax, ta thực hiện lặp lại các bước cần thiết để thu thập dữ liệu.

Tìm tất cả các hoành độ giao điểm của dòng quét y = k với các cạnh của đa giác.

Sắp xếp các hoành độ giao điểm theo thứ tự tăng dần : x 0 ,x 1 , , x n ,

Tô màu các đoạn thẳng trên đường thẳng y = k lần lượt được giới hạn bởi các cặp (x 0 , x 1 ), ( x 1 ,x 2 ), , x 2k , x 2k+1 ).

Để cải thiện tốc độ trong quá trình quét, chúng ta cần hạn chế số cạnh của đa giác cần tìm giao điểm với mỗi dòng quét, vì không phải tất cả các cạnh đều cắt dòng quét.

Việc xác định giao điểm giữa các cạnh của đa giác và dòng quét thường gặp phải các phép toán phức tạp như nhân và chia trên số thực, dẫn đến việc giảm tốc độ của thuật toán khi sử dụng phương pháp giải hệ phương trình Nếu số giao điểm giữa các cạnh và dòng quét là lẻ, việc nhóm các cặp giao điểm liên tiếp để tạo thành các đoạn tô có thể không chính xác, đặc biệt khi dòng quét đi qua các đỉnh của đa giác.

Việc xác định giao điểm của dòng quét với các cạnh nằm ngang là một tình huống đặc biệt cần xử lý một cách thích hợp Để giảm thiểu số lượng cạnh cần tìm giao điểm, chúng ta sử dụng công thức hệ số góc: x k+1 = x k + 1/m, trong đó m là hệ số góc của cạnh, và x k+1, x k lần lượt là hoành độ giao điểm của một cạnh với dòng quét y=k và y=k+1 Đối với các giao điểm đi qua đỉnh đơn điệu, ta tính số giao điểm là 1, trong khi đối với đỉnh cực trị, số giao điểm được tính là 0 hoặc 2.

Phát Triển Ứng dụng Đồ Họa 2D

Phát biểu bài toán

Dựa trên kiến thức về Đồ Họa 2 chiều, nhóm chúng tôi đã phát triển một ứng dụng mô phỏng bàn cờ 2D sử dụng thư viện đồ họa Graphics Chúng tôi áp dụng thuật toán Bressenham để vẽ đường thẳng, từ đó tạo ra hình ảnh bàn cờ một cách chính xác và hiệu quả.

Kết Luận

Ngày đăng: 02/12/2022, 08:32

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Xét trường hơp  0 &lt; m &lt; 1 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.1 Xét trường hơp 0 &lt; m &lt; 1 (Trang 6)
Hình 1.2 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.2 (Trang 8)
Hình 1.3 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.3 (Trang 9)
Hình 1.4 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.4 (Trang 10)
Hình 1.5 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.5 (Trang 11)
Hình 1.6 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.6 (Trang 12)
Hình 1.7 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.7 (Trang 14)
Hình 1.8 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.8 (Trang 15)
Hình 1.11 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.11 (Trang 18)
Hình 1.13 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.13 (Trang 20)
Hình 1.14 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.14 (Trang 21)
Ta có hình như sau: - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
a có hình như sau: (Trang 22)
Hình 1.16 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.16 (Trang 24)
Hình 1.17 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.17 (Trang 25)
Hình 1.18 - (TIỂU LUẬN) báo cáo CHUYÊN đề học PHẦN đồ họa máy TÍNH đề tài CHƯƠNG TRÌNH mô PHỎNG bàn cờ 2d
Hình 1.18 (Trang 26)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w