Đề tài vẽ chữ l, dùng phím điều khiển di chuyển minh họa các phép tịnh tiến, đối xứng qua trái, qua phải và quay

23 512 2
Đề tài  vẽ chữ l, dùng phím điều khiển di chuyển minh họa các phép tịnh tiến, đối xứng qua trái, qua phải và quay

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đồ họa máy tính ĐH Công Nghiệp Hà Nội Trường Đại Học Công Nghiệp Hà Nội Khoa Công Nghệ Thông Tin BÀI TẬP LỚN Môn: Đồ họa máy tính Đề tài 8: Vẽ chữ L, dùng phím điều khiển di chuyển minh họa các phép tịnh tiến, đối xứng qua trái, qua phải và quay. Giáo viên hướng dẫn: ThS.Nguyễn Thị Cẩm Ngoan Sinh viên thực hiện: 1. Nguyễn Mạnh Thắng 2. Vũ Lương Bằng 3. Ngô Xuân Long 1 Đồ họa máy tính ĐH Công Nghiệp Hà Nội Lời nói đầu Đồ họa máy tính là một lĩnh vực của khoa học máy tính nghiên cứu về cơ sở toán học, các thuật toán cũng như các kĩ thuật cho phép tạo, hiển thị và điều khiển hình ảnh trên màn hình máy tính. Đồ họa máy tính liên quan ít nhiều đến một số lĩnh vực như đại số, hình học giải tích và hình học họa hình, quang học…… và kĩ thuật máy tính và đặc biệt là chế tạo phần cứng ( các loại màn hình, các thiết bị nhập xuất, các vi mạch đồ họa). Nghiên cứu các phép biến đổi hình học trong không gian thực hai chiều là một trong những nội dung quan trọng. Qua thời gian tìm hiểu nhóm chúng em đã được giao làm đề tài: Vẽ chữ L, dùng phím điều khiển di chuyển minh họa các phép tịnh tiến, đối xứng qua trái, qua phải và quay. Do quá trình tìm hiểu còn nhiều thiếu sót nên chương trình còn nhiều hạn chế, nhóm thực hiện rất mong nhận được ý kiến đóng góp từ phía cô giáo và các bạn để phần mềm được hoàn thiện hơn. Hà Nội, ngày 28 tháng 2 năm 2013 2 Đồ họa máy tính ĐH Công Nghiệp Hà Nội MỤC LỤC Chương I: KHẢO SÁT I. Mục đích nghiên cứu II. Đối tượng nghiên cứu III. Khảo sát IV. Hướng giai quyết Chương II: PHÂN TÍCH I. Các giải thuật sinh thực thể cơ sở 1) Giả thuật trung điểm-Midpoint 2) Thuật toán MidPoint vẽ đường thẳng II. Các phép biến hình cơ bản 1) Phép tịnh tiến 2) Phép quay 3) Đối xứng CHƯƠNG III: CÀI ĐẶT CHƯƠNG TRÌNH 1. Giao diện chương trình 2. Cài đặt chương trình TỰ ĐÁNH GIÁ Ưu điểm Khuyết điểm Hướng giải quyết KẾT LUẬN 3 Đồ họa máy tính ĐH Công Nghiệp Hà Nội CHƯƠNG I: KHẢO SÁT I. Mục đích nghiên cứu Tạo ra chữ L có thể dùng phím điều khiển di chuyển minh họa các phép tịnh tiến, đối xứng( Qua trái, qua phải, lên, xuống) và phép quay. II. Đối tượng nghiên cứu Vẽ đường thẳng bằng thuật toán MidPoint, thuật toán dung phím điều khiển di chuyển minh họa các phép tịnh tiến, đối xứng( qua trái, qua phải, lên, xuống), và phép quay. III. Khảo sát Qua khảo sát trên các máy tính sử dụng hệ điều hành Windows 7, 8 , trên Win XP thì chương trình đều sử dụng được, di chuyển bằng phím điều khiển minh họa các phép tịnh tiến, đối xứng (qua trái, qua phải, lên, xuống), và phép quay chưa thực hiện được trong một số trường hợp. IV. Hướng giải quyết Tìm thêm tài liệu và nghiên cứu them về phép quay. CHƯƠNG II: PHÂN TÍCH 4 A B A Đồ họa máy tính ĐH Công Nghiệp Hà Nội I. Các giải thuật sinh thực thể cơ sở 1) Giả thuật trung điểm-Midpoint Jack Bresenham 1965 / Pitteway 1967, áp dụng cho việc sinh các đường thẳng và đường tròn 1985. Xét trung điểm của đoạn AB (M) Nếu M ở trên đoạn thẳng AB thì chọn B còn M ở dưới đoạn thẳng AB chọn A Công thức đơn giản hơn, tạo được các điểm tương tự như với Bresenham d = f(x + 1, y + 1/2) là trung điểm của đoạn AB Mô tả giải thuật Midpoint So sánh hay kiểm tra M sẽđược thay bằng việc xét giá trị d. - d > 0 điểm B được chọn khi đó yi+1 = yi - nếu d < 0 điểm A được chọn khi đó yi+1 = yi + 1 Trường hợp d = 0 chúng ta có thể chọn điểm bất kỳ hoặc A, hoặc B. Sử dụng phương pháp biểu diễn không tường minh f(x,y)= ax +by +c =0 (1)dx =x2 –x1 dy =y2 –y1 Biểu diễn tường minh: 5 Đồ họa máy tính ĐH Công Nghiệp Hà Nội y= (dy/dx)x +B hay f(x,y)=0= xdy - ydx +Bdx (2) So sánh (1) và (2) a=dyb=-dx c= Bdx Có f(x,y)=0 với mọi (x,y) thuộc đường thẳng Đặt d =f(xi +1,yi +1/2) = a(xi +1) +b(yi +1/2) +c + Nếu chọn A (d<0) thì M sẽ tăng theo 2 hướng x,y d =f(xi +2,yi +3/2) = a(xi+2) +b(yi +3/2) +c di+1 – di = a+b Hay di+1 = di + dy - dx + Nếu chọn B (d>0) thì M sẽ tăng theo x di+1 =f(xi +2,yi +1/2) = a(xi +2) +b(yi +1/2) +c di+1 - di = a Hay di+1 = di + dy Tính d1 ? d1 = f(x1 +1,y1 +1/2) = a(x1 +1) +b(y1 +1/2) +c = ax1 +by1 +c +a +1/2 b = f(x1 ,y1 ) +a +b/2 Có (x1 ,y1 ) là điểm bắt đầu, nằm trên đoạn thẳng nên f(x1 ,y1 ) = 0 6 Đồ họa máy tính ĐH Công Nghiệp Hà Nội Vậy d1 = a+ b/2 = dy - dx/2 2) Thuật toán MidPoint vẽ đường thẳng: void MidPoint(int x1,int y1,int x2,int y2,int color) { int x=x1; int y=y1; int dx=x2-x1; int dy=y2-y1; putpixel(x1,y1,color); if (dy<dx) { float P=dy-dx/2; while (x<x2) { if (P>=0) { putpixel(x+1,y+1,color); y++; P+=dy-dx; 7 Đồ họa máy tính ĐH Công Nghiệp Hà Nội } else { putpixel(x+1,y,color); P+=dy; } x++; } } else { float P=dx/2-dy; while (y<=y2) { if (P>=0) { putpixel(x+1,y+1,color); x++; P+=dx-dy; 8 Đồ họa máy tính ĐH Công Nghiệp Hà Nội } else { putpixel(x,y+1,color); P+=dx; } y++; } } putpixel(x2,y2,color); } II. Các phép biến hình cơ bản Bản chất của các phép biến đổi hình học là sự thay đổi các mô tả về tọa độ của đối tượng từ đó làm đối tượng thay đổi về hướng, kích thước cũng như hình dạng. 1) Phép tịnh tiến Để tịnh tiến một điểm P(x,y) từ vị trí này sang vị trí khác trong mặt phẳng, ta cộng them các giá trị mô tả độ dời vào các tọa độ của P. Nếu gọi trx và try lần lượt là độ dời theo trục hoành và trục tung thì tọa độ của điểm mới Q(x’,y’) sẽ là: X’=x+trx 9 P x y Q tr x tr y y x (2, 3) (4 , 3) (6, 1) (8 , 1) Đồ họa máy tính ĐH Công Nghiệp Hà Nội Y=’y+try (trx,try) còn được gọi là vector tịnh tiến hay vector độ dời. Chúng ta có thể dịch chuyển toàn bộ một đối tượng bằng cách áp dụng quy tắc trên cho mọi điểm thuộc đối tượng. Để tịnh tiến một đoạn thẳng, đơn giản chỉ cần tịnh tiến hai điểm đầu và cuối của nó rồi sau đó vẽ lại đoạn thẳng nối hai điểm mới. Với đa giác, ta tịnh tiến các đỉnh của nó sau đó vẽ lại đa giác với các đỉnh mới. Một cách tương tự, để tịnh tiến các đối tượng như đường tròng, ellipse, ta tịnh tiến tâm của chúng tới vị trí mới rồi vẽ lại. (a) (b) (b) Phép tịnh tiến một điểm (a) và đối tượng với vectortinhj tiến(b) Biểu diễn phép tịnh tiến dưới dạng tọa độ thuần nhất: 1 0 0 (x’ y’ 1)=(x y 1) 0 1 0 Trx try 1 1 0 0 Hay Q=P.M t(trx,try) với Mt(trx,try) = 0 1 0 trx try 1 2) Phép quay 10 [...]... //batPhim(); quaygoc(xa,ya,125); getch(); } 22 Đồ họa máy tính ĐH Công Nghiệp Hà Nội TỰ ĐÁNH GIÁ Ưu điểm: -Dễ dàng sử dụng và nâng cấp -Chiếm ít tài nguyên của máy Khuyết điểm: -Còn thiếu một vài chức năng Hướng phát triển:-Trao đổi, tìm kiếm thông tin trên mạng KẾT LUẬN Qua quá trình tìm hiểu và phân tích đề tài Vẽ chữ L, dùng phím điều khiển di chuyển minh họa các phép tịnh tiến, đối xứng qua trái, qua phải. ..Đồ họa máy tính ĐH Công Nghiệp Hà Nội Phép quay làm thay đổi hướng của đối tượng Một phép quay đòi hỏi phải có tâm quay, góc quay Góc quay dương thường được quy ước là chiều ngược kim đồng hồ Ta có công thức biến đổi của phép quay điểm P(x,y) quanh gốc tọa độ một góc α: X’= cosα.x – sinα.y Y’=sinα.x + cosα.y Phép quay một đối tượng quanh gốc tọa độ một góc 60° Biểu di n phép quay dưới dạng... 0 0 0 1 3) Đối xứng Phép đối xứng trục có thể xem là phép quay quanh trục đối xứng một góc 180° Nếu trục đối xứng là trục hoành hay trục tung, chúng ta có biểu di n của phép đối xứng qua trục hoành, trục tung lần lượt là: 1 0 0 Mrfx= 0 -1 0 0 0 1 -1 0 0 11 Đồ họa máy tính Mrfy= 0 0 1 0 ĐH Công Nghiệp Hà Nội 0 1 CHƯƠNG III: CÀI ĐẶT CHƯƠNG TRÌNH 1 Giao di n chương trình: Các thuật toán, các phép biến... = yf; // Ve hinh vua quay duoc vehinh(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6); } } 2 Cài đặt chương trình: //Bài tap lon //Ðe 8:Ve chu L, dùng phím dieu khien di chuyen minh hoa các phép tinh tien, doi xung qua trái, qua phai và quay #include #include #include #include #include #define radian 10 // he so doi tu do sang radian 18 Đồ họa máy tính ĐH Công... phép tịnh tiến, đối xứng qua trái, qua phải và quay ” chúng em đã hiểu được cách phân tích và thiết kế một phần mềm Tuy nhiên do kiến thức còn hạn hẹp nên chúng em chưa thể phân tích được sâu sắc hơn và đưa ra được một phần mềm hoàn chỉnh, nhưng em mong rằng qua đề tài này các bạn có thể hiểu thêm về cách vẽ một đa giác thành chữ cái và cách dùng phím di chuyển chữ cái trên chương trình 23 ... MidPoint(x1,y1,x4,y4,15); MidPoint(x4,y4,x5,y5,15); MidPoint(x5,y5,x6,y6,15); MidPoint(x6,y6,x3,y3,15); } 15 Đồ họa máy tính ĐH Công Nghiệp Hà Nội Di chuyển chữ L sang bên tráiDi chuyển chữ L sang bên phải Di chuyển chữ L lên trên Di chuyển chữ L xuống dưới 16 Đồ họa máy tính ĐH Công Nghiệp Hà Nội Thuật toán cài đặt bắt phím: void batPhim() { char c; int x1=200,y1=150,x2=200,y2=300,x3=300,y3=300,x4=220,y4=150,x5=220,y5=280,... Quay diem C float xc = x3 * cos(goc) - y3 * sin(goc); float yc = x3 * sin(goc) + y3 * cos(goc); // Quay diem D float xd = x4 * cos(goc) - y4 * sin(goc); float yd = x4 * sin(goc) + y4 * cos(goc); // Quay diem E float xe = x5 * cos(goc) - y5 * sin(goc); float ye = x5 * sin(goc) + y5 * cos(goc); // Quay diem F float xf = x6 * cos(goc) - y6 * sin(goc); float yf = x6 * sin(goc) + y6 * cos(goc); // Gan diem... Quay diem C float xc = x3 * cos(goc) - y3 * sin(goc); float yc = x3 * sin(goc) + y3 * cos(goc); // Quay diem D float xd = x4 * cos(goc) - y4 * sin(goc); float yd = x4 * sin(goc) + y4 * cos(goc); // Quay diem E float xe = x5 * cos(goc) - y5 * sin(goc); float ye = x5 * sin(goc) + y5 * cos(goc); // Quay diem F float xf = x6 * cos(goc) - y6 * sin(goc); float yf = x6 * sin(goc) + y6 * cos(goc); // Gan diem... Thuật toán quay góc: void quaygoc(float x,float y,float goc) { goc =goc*M_PI/45; int x1=200,y1=150,x2=200,y2=300,x3=300,y3=300,x4=220,y4=150, x5=220,y5=280,x6=300,y6=280; vehinh(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6); for (int i = 0; i < 7; i++) { // Quay diem A float xa = x1 * cos(goc) - y1 * sin(goc); float ya = x1 * sin(goc) + y1 * cos(goc); 17 Đồ họa máy tính ĐH Công Nghiệp Hà Nội // Quay diem B float... MidPoint(x6,y6,x3,y3,15); } void quaygoc(float x,float y,float goc) { goc =goc*M_PI/45; int x1=200,y1=150,x2=200,y2=300,x3=300,y3=300,x4=220,y4=150,x5=220,y5=280, x6=300,y6=280; vehinh(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6); for (int i = 0; i < 7; i++) { // Quay diem A 20 Đồ họa máy tính ĐH Công Nghiệp Hà Nội float xa = x1 * cos(goc) - y1 * sin(goc); float ya = x1 * sin(goc) + y1 * cos(goc); // Quay diem B float xb = . gian tìm hiểu nhóm chúng em đã được giao làm đề tài: Vẽ chữ L, dùng phím điều khiển di chuyển minh họa các phép tịnh tiến, đối xứng qua trái, qua phải và quay. Do quá trình tìm hiểu còn nhiều thiếu. cứu Tạo ra chữ L có thể dùng phím điều khiển di chuyển minh họa các phép tịnh tiến, đối xứng( Qua trái, qua phải, lên, xuống) và phép quay. II. Đối tượng nghiên cứu Vẽ đường thẳng bằng thuật. thuật toán dung phím điều khiển di chuyển minh họa các phép tịnh tiến, đối xứng( qua trái, qua phải, lên, xuống), và phép quay. III. Khảo sát Qua khảo sát trên các máy tính sử dụng hệ điều hành Windows

Ngày đăng: 06/11/2014, 01:09

Từ khóa liên quan

Mục lục

  • Đề tài 8: Vẽ chữ L, dùng phím điều khiển di chuyển minh họa các phép tịnh tiến, đối xứng qua trái, qua phải và quay.

  • Giáo viên hướng dẫn: ThS.Nguyễn Thị Cẩm Ngoan

  • I. Các giải thuật sinh thực thể cơ sở

  • 1) Giả thuật trung điểm-Midpoint

  • 2) Thuật toán MidPoint vẽ đường thẳng

  • II. Các phép biến hình cơ bản

  • 1) Phép tịnh tiến

  • CHƯƠNG III: CÀI ĐẶT CHƯƠNG TRÌNH

  • TỰ ĐÁNH GIÁ

  • Ưu điểm

  • Khuyết điểm

  • Hướng giải quyết

  • KẾT LUẬN

  • CHƯƠNG I: KHẢO SÁT

  • I. Mục đích nghiên cứu

  • Tạo ra chữ L có thể dùng phím điều khiển di chuyển minh họa các phép tịnh tiến, đối xứng( Qua trái, qua phải, lên, xuống) và phép quay.

  • II. Đối tượng nghiên cứu

  • Vẽ đường thẳng bằng thuật toán MidPoint, thuật toán dung phím điều khiển di chuyển minh họa các phép tịnh tiến, đối xứng( qua trái, qua phải, lên, xuống), và phép quay.

  • III. Khảo sát

  • Qua khảo sát trên các máy tính sử dụng hệ điều hành Windows 7, 8 , trên Win XP thì chương trình đều sử dụng được, di chuyển bằng phím điều khiển minh họa các phép tịnh tiến, đối xứng (qua trái, qua phải, lên, xuống), và phép quay chưa thực hiện được trong một số trường hợp.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan