« Home « Kết quả tìm kiếm

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


Tóm tắt Xem thử

- thuật toán vẽ đường tròn thuật toán vẽ đường tròn Bởi: lâm thị ngọc châu Thuật toán vẽ đường tròn Trong hệ tọa độ Descartes, phương trình đường tròn bán kính R có dạng: Với tâm O(0,0.
- Do tính đối xứng của đường tròn C (xem hình 1.7) nên ta chỉ cần vẽ 1/8 cung tròn, sau đó lấy đối xứng qua 2 trục tọa độ và 2 đường phân giác thì ta vẽ được cả đường tròn.
- 1/18 thuật toán vẽ đường tròn Hình 1.7 : Đường tròn với các điểm đối xứng.
- Thuật toán đơn giản - Tại mỗi giá trị x, tính - Vẽ điểm (x,y) cùng 7 điểm đối xứng của nó.
- Cài đặt minh họa thuật toán đơn giản.
- Begin 2/18 thuật toán vẽ đường tròn putpixel (xc + x , yc +y, color.
- Thuật toán xét điểm giữa (MidPoint) Do tính đối xứng của đường tròn nên ta chỉ cần vẽ 1/8 cung tròn, sau đó lấy đối xứng là vẽ được cả đường tròn.
- Thuật toán MidPoint đưa ra cách chọn yi+1 là yi hay yi-1 bằng cách so sánh điểm thực Q(xi+1,y) với điểm giữa MidPoind là trung điểm của S1 và S2.
- Giả sử (xi, yi) là điểm nguyên đã tìm được ở bước thứ i (xem hình 1.8), thì điểm (xi+1, yi+1) ở bước i+1 là sự lựa chọn giữa S1 và S2.
- 3/18 thuật toán vẽ đường tròn Hình 1.8 : Đường tròn với điểm Q(xi+1, y) và điểm MidPoint.
- 0 , nếu điểm (x,y) nằm trong đường tròn.
- 0 , nếu điểm (x,y) nằm trên đường tròn.
- 0 , nếu điểm (x,y) nằm ngoài đường tròn.
- Nếu Pi < 0 : điểm MidPoint nằm trong đường tròn.
- Khi đó, điểm thực Q gần với điểm S1 hơn nên ta chọn yi+1 = yi.
- 0 : điểm MidPoint nằm ngòai đường tròn.
- Khi đó, điểm thực Q gần với điểm S2 hơn nên ta chọn yi+1 = yi - 1.
- Nếu Pi < 0 : chọn yi+1 = yi.
- Khi đó Pi+1 = Pi + 2xi +3 - Nếu Pi.
- 0 : chọn yi+1 = yi - 1.
- Khi đó Pi+1 = Pi + 2xi - 2yi +5.
- 6/18 thuật toán vẽ đường tròn begin x:=0 .
- 2(yi+1 - yi.
- Khi đó Pi+1 = Pi + 4xi +6 - Nếu Pi.
- Khi đó Pi+1 = Pi + 4(xi - yi.
- Minh họa thuật toán vẽ đường tròn bằng Bresenham Procedure DTR_BRES(xc,yc,r,mau : integer).
- Áp dụng ý tưởng của thuật toán Midpoint để vẽ các đường conics và một số đường cong khác theo các bước theo các bước tuần tự sau.
- yi+1 = yi (hoặc = yi +1.
- yi+1 = yi (hoặc = yi - 1.
- 1 : yi+1 = yi + 1.
- -1 : yi+1 = yi + 1.
- Pi thường là hàm được xây dựng từ phương trình đường cong.
- Bước 4 : Tìm mối liên quan của Pi+1 và Pi bằng cách xét hiệu Pi+1 - Pi - Bước 5 : Tính P0 và hoàn chỉnh thuật toán.
- 12/18 thuật toán vẽ đường tròn Vẽ đa giác Hình 1.10 : Hai dạng của đường gấp khúc.
- Định nghĩa đa giác (Polygone): Đa giác là một đường gấp khúc kín có đỉnh đầu và đỉnh cuối trùng nhau (xem hình 1.10) Xây dựng cấu trúc dữ liệu để vẽ đa giác Type d_dinh = record x,y: longint.
- Với cách xây dựng cấu trúc dữ liệu như thế này thì chúng ta chỉ cần nhập vào tọa độ các đỉnh và sau đó gọi thủ tục vẽ đường thẳng lần lượt qua 2 đỉnh như .
- (n-1, n), trong đó đỉnh n trùng với đỉnh 0 thì ta sẽ vẽ được toàn bộ đa giác.
- Đa giác được gọi là lồi nếu bất kỳ đường thẳng nào đi qua một cạnh của đa giác thì toàn bộ đa giác nằm về một phía của đường thẳng đó.
- Ngược lại, nếu tồn tại ít nhất một cạnh của đa giác chia đa giác làm 2 phần thì gọi là đa giác lõm (xem hình 1.11).
- 13/18 thuật toán vẽ đường tròn Hình 1.11 : Đa giác lồi và đa giác lõm Thuật toán kiểm tra một đa giác là 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 đi qua các cạnh của đa giác.
- Ứng với từng phương trình đường thẳng, xét xem các đỉnh còn lại có nằm về một phía đối với đường thẳng đó hay không ? Nếu đúng thì kết luận đa giác lồi, ngược lại là đa giác lõm.
- Nhận xét : Phương trình đường thẳng y = ax + b chia mặt phẳng ra làm 2 phần.
- Các điểm nằm C(xc,yc) trên đường thẳng sẽ có yc > axc + b và các điểm D(xd,yd) nằm phía dưới đường thẳng sẽ có yd < axd + b.
- Ví dụ : Cho đường thẳng AB có phương trình và hai điểm C, D có tọa độ là C(0,4), D(2,0.
- xem hình 1.12).
- 14/18 thuật toán vẽ đường tròn Hình 1.12 : Đường thẳng AB và 2 điểm C, D.
- Ta có : và Vậy hai điểm C, D nằm về hai phía đối với đường thẳng AB.
- Thuật toán 2 : Nhận xét : Trong mặt phẳng Oxy, cho 2 véc tơ và , Tích vô hướng của 2 véc tơ là : 15/18 thuật toán vẽ đường tròn Khi đó : Một đa giác là lồi khi đi dọc theo biên của nó thì chỉ đi theo một hướng mà thôi.
- Ngược lại là đa giác lõm (xem hình 1.13).
- Hình 1.13 : Đa giác lồi có 5 đỉnh.
- Xét đa giác gồm các đỉnh P0, P1.
- n ≥ 3 (xem hình 1.13).
- Tính Ti = T( Vi , Vi+1 ) Nếu với mọi Ti đều cùng dấu thì kết luận đa giác lồi.
- Ngược lại, là đa giác lõm.
- Tổng kết chương 1 - Chương 1 đã trình bày khái niệm về một hệ độ họa, sự hiển thị của điểm trên màn hình với tọa độ phài là số nguyên.
- Phân biệt thế nào là hệ tọa độ thế giới thực, hệ tọa độ thiết bị và hệ tọa độ chuẩn.
- Cần lưu ý về hệ số góc của đường thẳng.
- 16/18 thuật toán vẽ đường tròn - Chú ý hơn trong cách xây dựng cấu trúc dữ liệu để lưu tọa độ của các đỉnh đa giác.
- Bài tập chương 1 Viết chương trình vẽ bầu trời có 10.000 điểm sao, mỗi điểm sao xuất hiện với một màu ngẫu nhiên.
- Viết chương trình thực hiện 2 thao tác sau.
- 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 rằng tọa độ A,B, color được nhập từ bàn phím.
- Trang trí màu nền, ghi chú các tọa độ A, B ở hai đầu đoạn thẳng.
- Tổng hợp bài tập 4, viết chương trình vẽ đường thằng bằng giải thuật Bresenham cho tất cả các trường hợp của hệ số góc.
- Lưu ý xét trường hợp đặc biệt khi đườ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 độ 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.
- Viết chương trình xét vị trí tương đối của 2 đoạn thẳng AB và CD.
- 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.
- Viết chương trình vẽ đường tròn theo giải thuật MidPoint.
- 17/18 thuật toán vẽ đường tròn 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.
- iết chương trình vẽ một đường tròn tâm O bán kính R.
- Hãy quay đoạn thẳng này quanh đường tròn.
- Viết chương trình vẽ Elippse.
- 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.
- 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.
- Viết chương trình vẽ một tam giác.
- Tọa độ các đỉnh được nhập từ bàn phím, mỗi cạnh có một màu khác nhau.
- Viết chương trình vẽ một đa giác có n đỉnh.
- Viết chương trình xét tính lồi lõm của một đa giác bằng cách thiết lập phương trình đường thẳng đi qua các cạnh của đa giác.
- Viết chương trình xét tính lồi lõm của một đa giác bằng cách thiết lập các véc tơ chỉ phương của các cạnh