VIỆN ĐẠI HỌC MỞ HÀ NỘI HỌC VIỆN NGÂN HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ ((( TÌM PHẦN ĐOẠN THẲNG NẰM TRONG HÌNH TRÒN Sinh viên Giáo viên hướng dẫn HÀ NỘI 2011 MỤC LỤC 1MỤC LỤC 2MỞ ĐẦU 3Chương 1 CƠ SỞ[.]
HỌC VIỆN NGÂN HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ TÌM PHẦN ĐOẠN THẲNG NẰM TRONG HÌNH TRỊN Sinh viên : Giáo viên hướng dẫn: HÀ NỘI - 2011 MỤC LỤC MỤC LỤC MỞ ĐẦU Chương CƠ SỞ TOÁN HỌC CỦA PHƯƠNG PHÁP TÌM PHẦN ĐOẠN THẲNG NẰM TRONG HÌNH TRỊN 1.1 Tổng quan 1.2 Phương pháp tìm phần đoạn thẳng nằm hình trịn Chương BIỂU DIỄN HỆ TRỤC TỌA ĐỘ TRONG MÁY TÍNH 2.1 Hệ toạ độ giới thực hệ toạ độ hình 2.1.1 Hệ tọa độ giới thực 2.1.2 Hệ toạ độ hiển thị hình 2.2 Các phép biến đổi không gian chiều .8 2.2.1 Phép tịnh tiến 2.2.2 Phép co giãn hệ toạ độ .9 2.3 Biến đổi từ hệ toạ độ thực sang toạ độ hình 2.3.1 Chuyển từ toạ độ thực sang cửa sổ nhìn : 2.3.2 Chuyển từ cửa sổ nhìn sang hình .10 Chương CHƯƠNG TRÌNH TÌM PHẦN ĐOẠN THẲNG NẰM TRONG HÌNH TRỊN 12 3.1 Yêu cầu chương trình 12 3.2 Xây dựng chương trình 12 3.2.1 Chương trình nhập liệu từ bàn phím 13 3.2.2 Chương trình lấy liệu từ file đưa mảng 14 3.2.3 Chương trình sinh ngẫu nhiên 14 3.2.4 Chương trình tìm phần giao đoạn thẳng hình trịn 15 3.2.5 Chương trình vẽ hình trịn đoạn thẳng 17 3.3 Mã nguồn chương trình 19 KẾT LUẬN 26 TÀI LIỆU THAM KHẢO 27 MỞ ĐẦU Trong thời đại công nghệ thông tin lĩnh vực đồ họa máy tính - lĩnh vực lý thú tin học - ngày phát triển không ngừng Đồ họa máy tính - ngành khoa học tin học chuyên nghiên cứu phương pháp kỹ thuật nhằm mơ tả liệu thơng qua hình ảnh Đồng hành với phát triển lĩnh vực đồ hoạ máy tính sở tốn học ngày củng cố với nhiều thuật toán mới, hiệu quả, phục vụ đắc lực cho nhà đồ hoạ máy tính phát triển ứng dụng đồ hoạ ngày đẹp mắt phục vụ tốt cho sống nhiều lĩnh vực Hình học nhân tố sở cho đồ hoạ máy tính, với phát triển thuật tốn hình học phát triển vượt bậc đồ hoạ Trong hình học tốn tìm phần giao đối tượng toán thú vị có nhiều thuật tốn hay đưa Chính em chọn đề tài “Tìm phần đoạn thẳng nằm hình trịn” để nghiên cứu tốt phương pháp tìm phần giao đối tượng Vì thời gian nghiên cứu ngắn trình có hạn đề tài chắn khơng thể tránh thiếu sót Cuối cùng, em xin chân thành cám ơn thầy giáo …, thầy cô giáo thuộc khoa … bạn sinh viên đồng nghiệp giúp đỡ, đóng góp ý kiến để đề tài tốt nghiệp hoàn thành Xin chân thành cảm ơn! Chương CƠ SỞ TOÁN HỌC CỦA PHƯƠNG PHÁP TÌM PHẦN ĐOẠN THẲNG NẰM TRONG HÌNH TRỊN 1.1 Tổng quan Các tốn liên quan đến việc tìm phần giao hợp đối tượng hình học phẳng đa giác, đường trịn thường tốn hay để tìm lời giải tối ưu địi hỏi người lập trình phải có tư tốt tốn học Đặc biệt, tìm giao hai đa giác toán sở hình học tính tốn có nhiều ứng dụng lĩnh vực khác đồ hoạ máy tính, CAD, GIS, Ý tưởng phương pháp tìm phần giao đối tượng hình học ta chia mặt phẳng toạ độ làm nhiều ô nhỏ (phương pháp chia lưới) đường thẳng song song với trục toạ độ Kiểm tra ô vuông, thuộc hình ta tiến hành cộng dồn lại Cuối ta có vùng giao hai đối tượng hình học Phương pháp cho kết gần Kích thước vng lưới nhỏ độ xác cao tốc độ thực lại chậm Vì vậy, cần có kỹ thuật duyệt để hạn chế số lượng hay khoanh vùng ô vuông nhỏ cần kiểm tra 1.2 Phương pháp tìm phần đoạn thẳng nằm hình trịn Về bản, tốn tìm phần đoạn thẳng nằm hình trịn tốn tìm giao hai đối tượng hình học đoạn thẳng hình trịn (hình trịn bao gồm đường trịn miền bên đường trịn) Do đó, ý tưởng toán tương tự toán chung nêu trên, ta chia nhỏ mặt phẳng thành điểm nhỏ kiểm tra điểm xem có thuộc đoạn thẳng đường trịn hay khơng Cuối cần nối điểm lại với ta phần đoạn thẳng nằm hình trịn Tuy nhiên, phương pháp khó thực số điểm phải kiểm tra lớn dẫn đến thời gian thực lâu Ta cần tìm kiếm phương pháp tốt Ta nhận thấy, với đoạn thẳng AB đường trịn tâm O bán kính R xảy trường hợp sau: Trường hợp 1: Đoạn thẳng khơng cắt hình trịn Khi giao AB (O,R) rỗng A B O Giả sử: phương trình tổng quát đường thẳng qua điểm A, B có dạng Ax By C 0 Phương trình đường trịn tâm O(x o,yo) có dạng ( x xo ) ( y yo ) R Gọi d khoảng cách từ O đến AB, ta có cơng thức: d Axo Byo C A2 B Khi đó, d R Trường hợp 2: Đoạn thẳng nằm hồn tồn hình trịn A B O Khi đó: d R; OA R; OB R Trong dó OA khoảng cách điểm A tâm O hình trịn, tính theo cơng thức: OA ( x A xO ) ( y A yO ) Trường hợp 3: Đoạn thẳng tiếp xúc với đường tròn Phần chung đoạn thẳng hình trịn điểm tiếp xúc A B O Khi đó: d R Trường hợp 4: Đoạn thẳng cắt đường trịn điểm (nhưng khơng phải tiếp xúc) Phần chung đoạn thẳng với hình trịn đoạn thẳng từ đầu mút nằm hình tròn đến giao điểm đoạn thẳng đến đường tròn M B A O Khi đó, có hai trường hợp xảy ra: - Thứ nhất: d R; OA R; OB R tức điểm A nằm hình trịn cịn điểm B nằm ngồi hình trịn Đoạn AM phần đoạn thẳng giao với hình trịn - Thứ hai: d R; OA R; OB R tức điểm B nằm hình trịn cịn điểm A nằm ngồi hình trịn Đoạn BM phần đoạn thẳng giao với hình trịn Trường hợp 5: Đoạn thẳng cắt đường tròn hai điểm M2 A B O M1 Đoạn thẳng AB cắt đường tròn hai điểm M1 M2, đoạn M1M2 phần đoạn thẳng nằm phía hình trịn Như vậy, ta có thuật tốn để tìm phần đoạn thẳng nằm phía hình trịn sau: Bước 0: Viết phương trình đường thẳng qua A, B phương trình đường trịn tâm O bán kính R Bước 1: Tìm giao điểm (nếu có) đoạn thẳng với đường trịn (dùng phương pháp chia nhỏ đoạn AB thành điểm kiểm tra điểm thoả mãn phương trình đường tròn) Giả sử M1 M2 Bước 2: Nếu khơng có giao điểm: Giao rỗng Kết thúc Bước 3: Nếu có giao điểm (chẳng hạn M1) - Nếu d=R : Đoạn thẳng tiếp xúc hình tròn Kết thúc - Nếu d