Thư viện đồ họa và công cụ chuyển đổi tọa độ

MỤC LỤC

Thư viện đồ họa 2D, 3D

    Chúng ta sẽ xây dựng những công cụ chuyển đổi từ hệ tọa độ Toán học (hệ Decac thuận, tọa độ là số thực không giới hạn) sang hệ tọa độ màn hình (hệ Decac ngược, tọa độ là số nguyên). Sau khi đã có bộ công cụ chuyển tọa độ trên, các lệnh vẽ về sau đều coi như đang vẽ trên hệ tọa độ Toán học quen thuộc. Mọi đối tượng hình học khác đều được xây dựng từ đoạn thẳng, chẳng hạn một điểm được vẽ như một đoạn thẳng với 2 đầu mút trùng nhau, các đường cong được vẽ bằng một loạt đoạn thẳng ngắn liên tiếp nhau, đường tròn được xấp xỉ hóa bởi một đa giác đều nhiều cạnh.

    Chẳng hạn nhìn lên một bức tranh tường, ta chú ý vào một họa tiết nào đó, khi đó cửa sổ là hình chữ nhật nhỏ nhất có thể chứa nó. Không phải lúc nào ta cũng dùng toàn bộ màn hình mà thường chia thành nhiều vùng, mỗi vùng cho một mục đích, để hiển thị một cửa sổ khác nhau. Ta vẽ đoạn thẳng bằng cách trước hết đặt con trỏ đồ họa vào điểm đầu mút thứ nhất, sau đó vẽ đoạn nối tới đầu mút thứ hai.

    Sau khi đã xác định được cửa sổ (vùng cần khảo sát) và tầm nhìn (vùng dành cho việc hiển thị), công việc tiếp theo là chiếu toàn bộ nội dung cửa sổ lên màn hình. Để làm việc này ta cần có công thức toán học của phép chiếu cho phép xác định tọa độ ảnh (Xe, Ye) của điểm thực (Xr, Yr) qua phép chiếu. Khi chiếu cửa sổ lên tầm nhìn, nếu tỷ lệ B/H ≠ B’/H’ thì sẽ xảy ra hiện tượng méo hình, nghĩa là đối tượng không còn giữ được nguyên vẹn hình dạng lúc đầu.

    • Trong khi giữ nguyên kích thước cửa sổ, ta di chuyển nó tới những vị trí khác nhau trong không gian thực, khi đó trên tầm nhìn hiện ra những phần khác nhau của ảnh. • Khi kích thước cửa sổ bị thu nhỏ lại, phần diện tích được khảo sát của đối tượng cũng thu nhỏ lại theo nhưng ảnh của nó trên màn hình lại được phóng to ra. • Ngược lại, nếu cửa sổ được phóng to ra thì phần diện tích được khảo sát của đối tượng cũng tăng lên nhưng ảnh của nó trên màn hình lại thu nhỏ lại.

    Vì ta đã coi đoạn thẳng là nguyên thể đồ họa nên vấn đề quy về việc làm sao để clipping một đoạn thẳng. • Nếu kết quả phép AND hai mã của 2 đầu mút khác 0000 thì đoạn thẳng tương ứng hoàn toàn nằm ngoài cửa sổ và sẽ không được hiển thị lên màn hình. - Nếu cả hai mã thuộc tính đều là 0000 thì đoạn thẳng hoàn toàn nằm trong cửa sổ - Nếu kết quả phép AND hai mã khác 0000 thì đoạn thẳng hoàn toàn nằm ngoài cửa sổ - Trường hợp không rơi vào hai khả năng trên: giao điểm của đoạn thẳng với biên cửa.

    Ta quy ước chỉ vẽ trục một cách tương đối, không tính toán chính xác theo vị trí tuyệt đối, nói cách khác việc vẽ trục chỉ mang tính trang trí, mang lại cho người xem cảm giác về vị trí tương đối của đối tượng so với hệ trục. - Trục nào không cắt qua cửa sổ: tịnh tiến ép sát vào mép trái hoặc mép dưới cửa sổ - Trục nào vốn đã trùng với mép trái hoặc mép dưới cửa sổ thì để nguyên.

    Hình ảnh mà ta đang khảo sát trên cửa sổ phải được thể hiện lên màn hình máy tính.
    Hình ảnh mà ta đang khảo sát trên cửa sổ phải được thể hiện lên màn hình máy tính.

    Hình học Fractal

    NhapSolieu; Mhdohoa;. VehamTong;Cho;. 2) Vật thể hình học Euclide có kích thước đặc trưng. 2) Không có kích thước xác định 3) Thích hợp với việc mô tả những thực. thể được tạo ra bởi con người. 3) Thích hợp để mô tả những vật thể trong tự nhiên. 4) Được mô tả bởi thuật toán lặp. Còn sự mô tả của hình học Fractal (các thuật lặp) lại đặc biệt thích hợp với việc tạo sinh bằng máy tính. Thực thể Fractal là kết quả của một quá trình lặp theo một thuật toán xác định, được tạo sinh lý tưởng bằng máy tính và rất khó được tạo một cách thủ công.

    Chúng ta chỉ khảo sát đặc tính đầu tiên và quan trọng nhất: đặc tính tự tương tự (self- similarity). Một thực thể có đặc tính tự tương tự nếu nó là hợp của N tập con không giao nhau, mỗi tập con được tạo sinh từ tập gốc qua các phép biến đổi như: co dãn, dịch chuyển, quay. Phát biểu một cách hình thức hơn, xét tập S gồm những điểm:. xE) trong không gian E chiều. Tập S là tự tương tự nếu S là hợp của N tập con không giao nhau, mỗi tập con tương đương với TA (có thể sai khác một phép tịnh tiến, quay hoặc vị tự). Tập S cũng được gọi là tự tương tự nếu các tập con được tạo sinh từ tập gốc theo các hệ số co Ti khác nhau.

    Ta hãy xét một ví dụ minh họa tính tự tương tự của một thực thể Fractal kinh điển: đường Von-Koch. Đường Von- Koch (còn gọi là “Bông hoa tuyết Von-Koch” như trong Wikipedia) là một trong những đường Fractal được công bố sớm nhất, vào năm 1904 bởi nhà toán học Thụy Điển Helge Von Koch. Thuật toán lặp cho đường Von-Koch gồm những bước sau:. a) Một đoạn thẳng cho trước được chia làm 3 phần bằng nhau. b) Đoạn giữa được thay bởi 2 đoạn có chiều dài tương đương. c) Mỗi đoạn trong số 4 đoạn này lại được thay bởi 4 đoạn mới có chiều dài bằng 1/3 đoạn trước. d) Quá trình cứ thế lặp lại. Đặc điểm của đường Von-Koch a). • Đường cong này có tính tự tương tự, mỗi phần nhỏ khi được phóng to có thể tạo sinh lại giống như phần lớn hơn, nói cách khác nó bất biến dưới sự phóng to hình.

    • Đường cong (sau vô hạn bước) có độ dài vô hạn mặc dù nó chỉ chiếm một phần diện tích hữu hạn của mặt phẳng. • Thuật toán tạo sinh đường Von-Koch khá đơn giản, nhưng không có công thức đại số để xác định những điểm trên đường cong. Khi D biến thiên từ 1 đến 2, đường cong biến thiên từ đường thẳng lan dần đến lấp đầy mặt phẳng hơn.

    Số bước lặp Độ dài phân đoạn Số phân đoạn Tổng chiều dài đường Koch.