tailieunhanh - Lập trình nâng cao trên ngôn ngữ Pascal part 8

Tham khảo tài liệu 'lập trình nâng cao trên ngôn ngữ pascal part 8', tài liệu phổ thông, tin học phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Chương 6. Một số unit chuẩn - Unit GRAPH 199 . Tở miền đa giác Với cách tổ chức tham số giống như DrawPoly thủ tục procedure FillPoly NumPoints word var PolyPoints tô miền đa giác có số đỉnh NumPoints và có tọa độ các đỉnh lưu trong PolyPoints. Điểm khác DrawPoly là FiliPoly không cần thêm một đỉnh trùng với đính đầu tiên vì nó luôn hiểu biên đa giác là khép kín. Để làm thí dụ ta thử dựng một đa giác hình sao 5 cánh. Gọi tâm của đa giác này là o và 10 đỉnh heo thứ tự là Po Pj . p . Các đỉnh chỉ số chẵn nằm cách đều nhau trên vòng tròn bán kính r OP0 gọi là bán kính của sao và các đỉnh chỉ sô lẻ nằm cách đểu nhau trên vòng tròn bán kính OP . Gọi góc nghiêng của OP0 so với phương nằm ngang là a. Từ đó dễ dàng tính được tọa độ của các đỉnh Pị theo công thức X - xn ơ 5 y - y0 M-sin a 5 trong đó x0 y0 là tọa độ tâm o và q được xác định bởi q r với i chẵn q - r ĩr 5 l với i lẻ i 0 2 4 6 8 i 1 3 5 7 9 Từ phán tích trên dễ dàng xây dựng được thủ tục star tô ngòi sao 5 cánh có tâm tại xO yO bán kính r góc nghiêng anfa với mẫu tô trơn và mầu tô color. Chương trình DemoStar dưới đây dùng thủ tục star vẽ các ngôi sao lên màn hình. Tâm của sao được sinh ngẫu nhiên trong phạm vi màn hình bán kính được sinh ngẫu nhiên trong khoảng từ 20 đến 100 góc nghiêng được sinh ngẫu nhiên trong khoảng từ 0 đến 2 r 5 và mầu tô dược sinh ngẫu nhiên trong khoảng từ 1 đến sô hiệu mầu cao nhất. Chương trình kết thúc khi ấn phím Esc. Program DemoStar Uses GRAPH CRT Var err MaxX MaxY integer MaxColor word ch char 200 Chương 6. Một sô unit chuẩn - Unit GRAPH function Detectlnit path string integer var drive mode Integer begin drive 0 InitGraph drive mode path Detectlnit GraphResult end procedure Star x0 yO integer r word anfa real color word const beta Pi 5 var i q rr word P array of PointType begin rr Round r 2 Cos beta 1 for i 0 to 9 do I xác định tọa độ các đỉnh P ĩ begin if Odd i then q rr else q r with p i do begin X xO Round q Cos anfa i beta y yO Round q Sin anfa