Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
1,55 MB
Nội dung
Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học LẬP TRÌNH WINDOWS Thư viện đồ họa GDI (Graphics Device Interface) Trần Ngọc Bảo Email: tnbao.dhsp@gmail.com Lập trình đồ họa với thư viện GDI Tran Ngoc Bao 2 Dai hoc Su Pham TP.HCM TÌM HIỂU ỨNG DỤNG PAINT Chọn đối tượng Di chuyển đối tượng Lưu trữ các đối tượng Vẽ các đối tượng trong GDI Line Rectangle Circle … Tran Ngoc Bao 3 Dai hoc Su Pham TP.HCM TÌM HIỂU ỨNG DỤNG PAINT Chọn đối tượng Di chuyển đối tượng Lưu trữ các đối tượng Vẽ các đối tượng trong GDI Line Rectangle Circle Tran Ngoc Bao 4 Dai hoc Su Pham TP.HCM VẼ ĐỐI TƯỢNG Demo chuong trinh Paint Tran Ngoc Bao 5 Dai hoc Su Pham TP.HCM TÌM HIỂU ỨNG DỤNG PAINT Chọn đối tượng Di chuyển đối tượng Lưu trữ các đối tượng Vẽ các đối tượng trong GDI Line Rectangle Circle Tran Ngoc Bao 6 Dai hoc Su Pham TP.HCM CHỌN ĐỐI TƯỢNG Tran Ngoc Bao 7 Dai hoc Su Pham TP.HCM CHỌN ĐỐI TƯỢNG - ĐƯỜNG THẲNG Về mặt toán học - Đoạn thẳng được tạo bởi 2 điểm P(xP,yP),Q(xQ,yQ) - Gọi M(xM, yM) là vị trí của chuột Chọn đường thẳng tương đương với việc di chuyển chuột và click lên đường thẳng PQ Æ Tọa độ M của chuột nằm trên đường thẳng PQ hay M ∈ PQ P(x P ,y P ) Q(x Q ,y Q ) M(x M ,y M ) P(x P ,y P ) Q(x Q ,y Q ) Tran Ngoc Bao 8 Dai hoc Su Pham TP.HCM Về mặt toán học - Phương trình chính tắc đường thẳng PQ P Q CHỌN ĐỐI TƯỢNG - ĐƯỜNG THẲNG QP P QP P yy yy xx xx − − = − − Ax + By + C = 0 A = y P –y Q B = x Q –x P C = x P *y Q –x Q *y P Tran Ngoc Bao 9 Dai hoc Su Pham TP.HCM Về mặt toán học - Phương trình chính tắc đường thẳng PQ CHỌN ĐỐI TƯỢNG - ĐƯỜNG THẲNG Ax + By + C = 0 (d) A = y P –y Q B = x Q –x P C = x P *y Q –x Q *y P P Q M Tọa độ M của chuột nằm trên đường thẳng PQ hay M ∈ PQ Æ Khoảng cách từ M đến PQ bằng 0 0 22 = + ++ BA CByAx MM Tran Ngoc Bao 10 Dai hoc Su Pham TP.HCM Về mặt toán học - M thuộc đoạn PQ Æ M thỏa 3 điều kiện sau CHỌN ĐỐI TƯỢNG - ĐƯỜNG THẲNG P Q M 0 22 = + ++ BA CByAx MM x P ≤ x M ≤ x Q y P ≤ y M ≤ y Q Với Ax + By + C = 0 (d) là phương trình đường thẳng qua 2 điểm PQ [...]... (c) R M thuộc đường tròn (C) O(XO,YO) tọa độ điểm M(xM,yM) thỏa phương trình (C) (xM - xo)2 + (yM – yo)2 = R2 (c) Tran Ngoc Bao 19 Dai hoc Su Pham TP.HCM CHỌN HÌNH TRÒN Cài đặt chương trình Phương trình đường tròn (C) tâm O bán kính R M(XM,YM) (x - xo)2 + (y – yo)2 = R2 (c) R M thuộc đường tròn (C) tọa độ điểm M(xM,yM) thỏa phương trình (C) O(XO,YO) R2 - ε ≤ (xM - xo)2 + (yM – yo)2 ≤ R2 + ε Tran Ngoc... ? 21 Dai hoc Su Pham TP.HCM CHỌN HÌNH TRÒN CÓ TÔ MÀU Phương trình đường tròn (C) tâm O bán kính R (x - xo)2 + (y – yo)2 = R2 (c) M(XM,YM) R M thuộc đường tròn (C) tọa độ điểm M(xM,yM) thỏa phương trình (C) O(XO,YO) (xM - xo)2 + (yM – yo)2 < R2 (c) Tran Ngoc Bao 22 Dai hoc Su Pham TP.HCM CHỌN HÌNH TRÒN CÓ TÔ MÀU Cài đặt chương trình Phương trình đường tròn (C) tâm O bán kính R M(XM,YM) (x - xo)2 + (y... THẲNG Cài đặt chương trình - M thuộc đoạn PQ M thỏa 3 điều kiện sau P xmin ≤ xM ≤ xmax ymin ≤ yM ≤ ymax M Ax M + By M + C A2 + B 2 Q P M Q Tran Ngoc Bao ≤ε =0 Với - Ax + By + C = 0 (d) là phương trình đường thẳng qua 2 điểm PQ - xmin = min(xP,xQ), xmax = max(xP,xQ) - ymin = min(yP,yQ), ymax = max(yP,yQ) 11 Dai hoc Su Pham TP.HCM CHỌN ĐƯỜNG THẲNG - DEMO Hệ số A, B, C của phương trình đường thẳng PQ... dc.LineTo(ptrRect->BottomRight()); } Tran Ngoc Bao 16 Dai hoc Su Pham TP.HCM CHỌN HÌNH CHỮ NHẬT RỖNG Tran Ngoc Bao 17 Dai hoc Su Pham TP.HCM CHỌN HÌNH CHỮ NHẬT RỖNG B Về mặt toán học A M B M A C D C D - Kiểm tra điểm M ∈ AB - Kiểm tra điểm M ∈ BC - Kiểm tra điểm M ∈ CD - Kiểm tra điểm M ∈ DA Tran Ngoc Bao 18 Dai hoc Su Pham TP.HCM CHỌN HÌNH TRÒN Về mặt toán học Phương trình đường tròn (C) tâm O bán kính R M(XM,YM)... Pham TP.HCM CHỌN HÌNH TRÒN CÓ TÔ MÀU Cài đặt chương trình Phương trình đường tròn (C) tâm O bán kính R M(XM,YM) (x - xo)2 + (y – yo)2 = R2 (c) R M thuộc đường tròn (C) tọa độ điểm M(xM,yM) thỏa phương trình (C) O(XO,YO) (xM - xo)2 + (yM – yo)2 ≤ R2 + ε Tran Ngoc Bao 23 Dai hoc Su Pham TP.HCM CHỌN ĐA GIÁC BẤT KỲ CÓ TÔ MÀU M M M M M Đa giác lồi Tran Ngoc Bao Đa giác lõm 24 Dai hoc Su Pham TP.HCM CHỌN... giao điểm Có 0 giao điểm M M M - Điều kiện để M nằm trong đa giác Có 4 giao điểm ? - Điều kiện để M nằm ngoài đa giác ? Có 4 giao điểm M M Có 3 giao điểm M Có 0 giao điểm Đa giác lõm M Tran Ngoc Bao 26 Dai hoc Su Pham TP.HCM CHỌN ĐA GIÁC BẤT KỲ CÓ TÔ MÀU M M M M M - Điều kiện để M nằm trong đa giác số giao điểm của đường thẳng kẽ từ M đến các cạnh của đa giá là một số lẻ: 1, 3, 5, - Điều kiện để M... các cạnh của đa giá là một số chẵn: 0, 2, 4,… Tran Ngoc Bao 27 Dai hoc Su Pham TP.HCM XÁC ĐỊNH GIAO ĐIỂM GIỮA 2 ĐƯỜNG THẲNG K (d1): A1x + B1y + C1 = 0 Giao điểm của (d1) và (d2) là nghiệm của hệ phương trình Tran Ngoc Bao (d2): A2x + B2y + C2 = 0 28 Dai hoc Su Pham TP.HCM TÌM HIỂU ỨNG DỤNG PAINT Vẽ các đối tượng trong GDI Line Rectangle Circle Chọn đối tượng Di chuyển đối tượng Lưu trữ các đối tượng... tiến tâm O đến vị trí O’ Tran Ngoc Bao 33 Dai hoc Su Pham TP.HCM DI CHUYỂN ĐỐI TƯỢNG Di chuyển hình chữ nhật Di chuyển đa giác Tran Ngoc Bao 34 Dai hoc Su Pham TP.HCM DI CHUYỂN ĐỐI TƯỢNG – CÀI ĐẶT CHƯƠNG TRÌNH Xử lý sự kiện MouseDown - Chọn đối tượng từ vị trí của chuột - Lấy tọa độ điểm đầu (tọa độ của chuột) Xử lý sự kiện MouseMove - Tịnh tiến đối tượng đến vị trị hiện hành của chuột - Xóa đối tượng... sự kiện OnDraw Tran Ngoc Bao 35 Dai hoc Su Pham TP.HCM TÌM HIỂU ỨNG DỤNG PAINT Vẽ các đối tượng trong GDI Line Rectangle Circle Chọn đối tượng Di chuyển đối tượng Lưu trữ các đối tượng Tran Ngoc Bao 36 Dai hoc Su Pham TP.HCM . Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học LẬP TRÌNH WINDOWS Thư viện đồ họa GDI (Graphics Device Interface) Trần Ngọc Bảo Email: tnbao.dhsp@gmail.com Lập trình đồ họa với thư viện GDI Tran Ngoc. chương trình M(X M ,Y M ) O(X O ,Y O ) R Phương trình đường tròn (C) tâm O bán kính R (x - x o ) 2 + (y – y o ) 2 = R 2 (c) M thuộc đường tròn (C) Î tọa độ điểm M(xM,yM) thỏa phương trình (C) R 2 -. học M(X M ,Y M ) O(X O ,Y O ) R Phương trình đường tròn (C) tâm O bán kính R (x - x o ) 2 + (y – y o ) 2 = R 2 (c) M thuộc đường tròn (C) Î tọa độ điểm M(xM,yM) thỏa phương trình (C) (x M -x o ) 2 + (y M –y o ) 2 =