Vẽ 1 ellipse, sau đó vẽ thêm 3 ellipse khác có cùng tâm với ellipse đã cho, có độ dãn ở trục OX là K và OY là 1. Sau đó vẽ 1 elip nghiêng 1 góc G độ có các trục không song song với các trục tọa độ

27 2.5K 4
Vẽ 1 ellipse, sau đó vẽ thêm 3 ellipse khác có cùng tâm với ellipse đã cho, có độ dãn ở trục OX là K và OY là 1. Sau đó vẽ 1 elip nghiêng 1 góc G độ có các trục không song song với các trục tọa độ

Đ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

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN  BÁO CÁO BÀI TẬP LỚN MÔN HỌC ĐỒ HỌA MÁY TÍNH ĐỀ TÀI:“Vẽ ellipse, sau vẽ thêm ellipse khác có tâm với ellipse cho, có độ dãn trục OX K OY Sau vẽ elip nghiêng góc G độ có trục khơng song song với trục tọa độ” NHĨM THỰC HIỆN: Nhóm 23 – LỚP KTPM3 – K6 • • • Nguyễn Vũ Túc - 0641360220 Nguyễn Thu Phương - 0641360241 Trần Đức Giang - 0641360174 GIÁO VIÊN HƯỚNG DẪN: Nguyễn Thị Cẩm Ngoan Hà Nội,ngày 20/ 2/2013 MỤC LỤC LỜI NÓI ĐẦU Đồ họa là một những lĩnh vực phát triển rất nhanh của ngành công nghệ thông tin Nó được ứng dụng rộng rãi nhiều lĩnh vực khoa học và công nghệ Chẳng hạn y học, kiến trúc, giải trí… Đồ họa máy tính đã giúp chúng ta thay đổi cách cảm nhận và sử dụng máy tính, nó đã trở thành những công cụ trực quan quan trọng không thể thiếu đời sống hằng ngày Vì vậy, môn đồ họa đã trở thành một những môn học chính các chuyên nghành Công nghệ thông tin ở các trường đại học Trong bài tập lớn bộ môn đồ họa máy tính nhóm em được giao đề tài: “Vẽ ellipse, sau vẽ thêm ellipse khác có tâm với ellipse cho, có độ dãn trục OX K OY Sau vẽ elip nghiêng góc G độ có trục khơng song song với trục tọa độ” Được sự hướng dẫn của cô giáo bộ môn cũng qua các cổng thông tin Internet, tài liệu và sự tìm tòi các cuốn sách tài liệu liên quan tới đề tài nhóm em đã hoàn thành bài tập lớn được giao Trong quá trình hoàn thành nhóm đã gặp được một số khó khăn cũng thuận lợi và còn nhiều hạn chế Nhóm em rất mong được sự đóng góp, bổ sung ý kiến để bài tập lớn của nhóm em có thể hoàn thành tốt các đề tài tiếp theo cũng đề tài của nhóm sau này Hà Nội, Ngày 14 tháng năm 2013 CHƯƠNG I KHẢO SÁT Mục đích nghiên cứu 1.1 Về kỹ Xác định độ dài trục lớn, trục nhỏ, tiêu cự, tiêu điểm elip Xác định giao điểm vủa Elip với trục tọa độ Sử dụng tốt các thuật toán, cách vẽ hình elip và các phép biến đổi đồ họa 1.2 Về tư Thấy mối liên hệ Elip với đường trịn Hiểu tính chất hình học giải số toán Elip Đối tượng nghiên cứu Các phép biến tịnh tiến, biến đổi tỉ lệ, phép quay, phép tịnh tiến ứng dụng hình học Cách vẽ hình elip tọa độ không gian 3 Khảo sát 3.1 Ứng dụng của hình Elip thực tế - Dùng toán học, công nghệ thông tin : vẽ hình Elip, đồ họa… - Sản xuất các vật dụng cuộc sống : chậu tắm, mắt kính… 3.2 Dự tính cần làm đề tài - Vẽ hình elip - phép tỉ lệ - phép tịnh tiên - phép quay CHƯƠNG II TỔNG QUAN VỀ ĐỒ HỌA MÁY TÍNH Khái niệm kỹ thuật đồ họa máy tính (COMPUTER GRAGHICS) Kỹ thuật đồ họa máy tính là phương pháp và công nghệ dùng việc chuyển đổi qua lại giữa dữ liệu và hình ảnh màn hình bằng máy tính [ISO] Kỹ thuật đồ họa hay đồ họa máy tính còn được hiểu dưới dạng phương pháp và kỹ thuật tạo hình ảnh từ các mô hình toán học mô tả các đối tượng hay dữ liệu lấy được từ các đối tượng có thật thực tế Thuật ngữ kỹ thuật đồ họa máy tính được đề xuất bởi một nhà khoa học người Mỹ tên là William Fetter vào năm 1960 Khi đó ông còn nghiên cứu xây dựng mô hình buồng lái máy bay cho hãng Boeing của Mỹ Ông đã dựa các hình ảnh ba chiều của mô hình của người phi công buồng lái của máy bay để xây dựng lên một mô hình tối ưu cho buồng lái máy bay Boeing Lịch sử đồ họa những năm 1960 còn được đánh dấu bởi dự án Sketchpad tại MIT với Ivan Shutherland tại hội nghị Fall Joint Computer cùng với sự kiện lần đầu tiên tạo mới, hiển thị và thay đổi được dữ liệu hình ảnh trực tiếp màn hình thời gian thực Hình 1.1 Ivan Shutherland Kỹ thuật đồ họa còn liên tục hoàn thiện vào những năm 1970 với sự xuất hiện của các chuẩn về đồ họa làm tăng cường khả giao tiếp và tái sự dụng của các phần mềm cũng các thư viện đồ họa Các kỹ thuật đồ họa 2.1 Kỹ thuật đồ họa điểm Nguyên lỹ xây dựng các mô hình và hình ảnh kỹ thuật đồ họa điểm gồm : các mô hình, hình ảnh của các đối tượng được hiển thị thông qua từng pixel Có hai phương pháp để tạo các pixel này: - Phương pháp thứ nhất là dùng phần mềm để vẽ trực tiếp từng pixel một dựa các lỹ thuyết mô phỏng - Phương pháp thứ hai là số hóa hình ảnh thực của đối tượng Sau đó chúng ta có thể sửa đổi hoặc xử lý mảng các pixel thu được theo những phương pháp khác để thu được hình ảnh đặc trưng của đối tượng 2.2 Kỹ thuật đồ họa vector Nguyên lý xây dựng các mô hình và hình ảnh kỹ thuật đồ họa vector sau : trước hết người ta xây dựng mô hình hình học cho mô hình hoặc hình ảnh của đối tượng, xác định các thuộc tính của mô hình hình học này, sau đó dựa mô hình hình học này sẽ thực hiện quá trình tô trát để hiển thị từng điểm của mô hình, hình ảnh thực của đối tượng Ở kỹ thuật đồ họa này chúng ta chỉ lưu trữ mô tả của toán học của các thành phần mô hình hình học cũng với các thuộc tính tương ứng của nó mà không lưu trữ lại toàn bộ tất cả các pixel của hình ảnh tô trát được Ứng dụng của đồ họa máy tính Ngày nay, đồ họa máy tính được xử dụng nhiều lĩnh vực khác như: công nghiệp, thương mại, quản lý giáo dục, giải trí…như: - Tạo giao diện các chương trình ứng dụng Windows, Excel… - Tạo các biểu đồ dùng thương mại, khoa học và kỹ thuật - Tự động hóa văn phòng và chế bản điện tử - Thiết kế với sự trợ giúp của máy tính CHƯƠNG III CÁC THUẬT TOÁN SỬ DỤNG TRONG ĐỀ TÀI Thuật tốn vẽ hình elip Để đơn giản, ta chọn Ellipse có tâm ở gốc tọa độ Phương trình của nó có dạng: + =1 Ta có thể viết lại: Y2 = x2 + b2 (*) Hình 1.1 Hình ellipse (*) Ý tưởng : Giống thuật toán vẽ đường tròn Chỉ có sự khác biệt ở là ta phải vẽ nhánh : Một nhánh từ xuống và một nhánh từ dưới lên và nhánh này sẽ gặp tại điểm mà ở đó hệ số góc của tiếp tuyến với Ellipse = -1 Phương trình tiếp tuyến với Ellipse tại điểm (x0,y0) € (E) : X + y0 = Suy ra, hệ số góc của tiếp tuyến tại điểm đó là : 1.1 Thuật toán Bresenham Ở đây, ta chỉ xét nhánh vẽ từ xuống Giả sử điểm ( xi , yi ) đã được vẽ Điểm tiếp theo cần chọn sẽ là ( x i + 1,yi ) hoặc (xi+1,yi – 1) Thay (xi + 1) vào (*) :y2 = (xi + 1)2 + b2 Đặt d1 = yi2 – y2 = yi2 + (xi + 1)2 – b2 d2 = y2 – (yi - 1)2 = (xi + 1)2 + b2 – (yi -1)2 → pi = d1 – d2 = 2.[.(xi + 1)2 – b2] + 2.(yi2 + yi) – Pi+1 = 2.[.(xi+1 + 1)2 – b2] + 2.(yi+12 + yi+1) – Suy ra: Pi+1 – pi = [(xi+1 + 1)2 – (xi + 1)2] + 2.(yi+12 – yi2 + yi+1 - yi) *Nhận xét: - Pi < 0: Chọn yi+1 = yi (**) → pi+1 = pi + (2x + 3) - pi ≥ : Chọn yi+1 = yi – (**) → pi+1 = pi + (2x + 3) – 4yi Với điểm đầu tiên (0,b), ta có: P1 = - 2b + Từ đó, ta có thủ tục vẽ Ellipse sau : Procedure Ellipse(xc,yc,a,b:Integer;Color:Byte); Var p,a2,b2:real; x,y:integer; (* -*) (**) Procedure VeDiem; Begin PutPixel(xc+x,yc+y,Color); PutPixel(xc-x,yc+y,Color); PutPixel(xc-x,yc-y,Color); PutPixel(xc+x,yc-y,Color); End; (* -*) Begin a2:=a*a; b2:=b*b; {Nhanh 1} x:=0; y:=b; p:=2*b2/a2 - 2*b + 1; While (b2/a2) * (x/y) < Begin VeDiem; If p Max thì dừng CHƯƠNG IV CÁC PHÉP BIẾN ĐỔI Phép tịnh tiến (Translation) Có hai quan điểm về phép biến đổi hình học, đó là : - Biến đổi đối tượng : thay đổi tọa độ của các điểm mô tả đối tượng theo một quy tắc nào đó - Biến đổi hệ tọa độ : tạo một hệ tọa độ mới và tất cả các điểm mô tả đối tượng sẽ được chuyển về hệ tọa độ mới Các phép biến đổi hình học sở là : tịnh tiến, quay, biến đổi tỉ lệ Phép biến đổi Affine hai chiều ( gọi tắt là phép biến đổi) là một ánh xạ T biến đổi điểm P(Px,Py) thành điểm Q(Qx,Qy) theo hệ phương trình sau : 14 Qx = a*Px + c*Py + trx Qy = b*Px + d*Py + try Hay (Qx,Qy) = (Px,Py) (ad – bc) + (trx,try) → Q = P.M + tr Dùng để dịch chuyển đối tượng từ vị trí này sang vị trí khác 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 độ điểm mới Q(x’,y’) sau tịnh tiến điểm P(x,y) sẽ là: x’= x + trx y’= y + try (trx,try) được gọi là vector tịnh tiến hay vector độ dời Hay Q= P.M + tr M= ad – bc tr=(trx,try) 15 Q(x’,y’) try P(x,y) trx Hình 3.1 Phép biến đổi tịnh tiến điểm P thành điểm Q Phép biến đổi tỷ lệ Phép biến đổi tỷ lệ làm thay đổi kích thước của đối tượng Để co hay giãn tọa độ của một điểm P(x,y) theo trục hoành và trục tung lần lượt là S x và Sy ta nhân Sx và Sy lần lượt cho các tọa độ của P x’ = x.Sx y’ = y.Sy - Khi các giá trị Sx, Sy nhỏ 1, phép biến đổi sẽ thu nhỏ đối tượng Ngược lại, các giá trị này lớn 1, phép biến đổi sẽ phóng lớn đối tượng - Khi Sx = Sy, người ta gọi đó là phép đồng dạng Đây là phép biến đổi bảo toàn tính cân xứng của đối tượng Ta gọi là phép phóng đại nếu |S|>1 và là phép thu nhỏ nếu |S|0) { y ; if(p>0) p= p+a*a*(1-2*y) ; else { x++ ; p=p+a*a*(1-2*y)+2*b*b*x; }; putpixel(x+x1,y+y1,val); putpixel(-x+x1,y+y1,val); putpixel(x+x1,-y+y1,val); putpixel(-x+x1,-y+y1,val); } } void quay(int x1,int y1, float a, float b, int val) { float x11,y11,goc; coutgoc; x11=x1*cos(goc)-y1*sin(goc); y11=x1*sin(goc)+y1*cos(goc); elip(x11,y11,a,b,3); 24 } int main() { int md=0, dr=0; initgraph(&md,&dr,"C:\\BC\\BGI"); //cleardevice(); //setbkcolor(0); cuaSo(-10,-10,10,10); khungNhin(60,10,560,510); setcolor(14); veTrucToaDo(); int x1,y1,k; float a,b; coutx1;cin>>y1; couta; coutb; coutk ; //cleardevice(); setbkcolor(0); elip(x1,y1,a,b,11); 25 elip(x1,y1,a+k,b+10,12); quay(x1,y1,a,b,3); getch(); } KẾT LUẬN Trong trình nghiên cứu đề tài nhóm chúng tơi có số thuận lợi sau: - Các thành viên nhóm tích cực tham gia hoạt động, thảo luận tìm hiểu nghiên cứu đề tài - Thời gian thực đề tài tương đối dài Bên cạnh mặt thuận lợi gặp khơng khó khăn là: - Nguồn tài liệu đề tài nghiên cứu hạn chế - Kiến thức đề tài thành viên nhóm cịn hạn chế Sau q trình nghiên cứu tìm hiểu đề tài, thành viên nhóm củng cố lại kiến thức học bổ sung thêm số kiến thức môn đồ họa máy tính Thành lớn mà nhóm nhận sau nghiên cứu xong kĩ hoạt động nhóm Mỗi thành viên hiểu trách nhiệm thân công việc chung nhóm Qua mà thành viên cố gắng hồn thành tốt cơng việc mà giao Bài báo cáo cịn nhiều thiếu sót, chúng tơi mong bạn đọc thông cảm bổ sung ý kiến để chúng tơi hồn thiện báo cáo cách hồn chỉnh, đầy đủ Chúng tơi xin chân thành cảm ơn! 26 27 ... ellipse khác có tâm với ellipse cho, có độ dãn trục OX K OY Sau vẽ elip nghiêng g? ?c G độ có trục không song song với trục tọa độ? ?? Được sự hướng dẫn của cô giáo bộ môn cũng qua các cổng thông... x 11, y 11, goc; coutgoc; x 11= x1*cos(goc)-y1*sin(goc); y 11= x1*sin(goc)+y1*cos(goc); elip( x 11, y 11, a,b ,3) ; 24 } int main() { int md=0, dr=0; initgraph(&md,&dr,"C:\\BC\\BGI");... ban kinh b= ";cin>>b; coutk ; //cleardevice(); setbkcolor(0); elip( x1,y1,a,b ,11 ); 25 elip( x1,y1,a +k, b +10 ,12 ); quay(x1,y1,a,b ,3) ; getch(); } K? ??T LUẬN Trong trình nghiên

Ngày đăng: 21/11/2014, 00:39

Từ khóa liên quan

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

Tài liệu liên quan