1. Trang chủ
  2. » Luận Văn - Báo Cáo

đề tài các kỹ thuật biến đổi hình-chương trình mô phỏng

17 542 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 226,29 KB

Nội dung

đề tài các kỹ thuật biến đổi hình-chương trình mô phỏng

Môn: Đồ họa máy tính BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC THÀNH ĐÔ KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN MÔN : Đồ Họa Máy Tính Đề Tài: Các kỹ thuật biến đổi hình-chương trình mô phỏng Giáo Viên Hướng Dẫn : Trần Xuân Thanh Lớp: CĐTin-K8 Thành viên nhóm 7 : Mai Văn Long Trịnh Thị Thu Phương(NT) Khổng Thị Thảo My Nguyễn Đắc Mạnh Môn: Đồ họa máy tính LỜI NÓI ĐẦU Hiện nay đồ họa máy tính là một trong những chương trình thông dụng nhất, nó đóng góp phần quan trọng là cho giao tiếp con người và máy tính trở nên thân thiện. Thật vậy, giao diện kiểu văn bản đã được thay thế hoàn toàn bằng giao diện đồ họa, cùng với công nghệ đa phương tiện đã đưa ngành Công Nghệ Thông Tin sang phiên bản mới. Cuốn tài liệu này nhóm em “ trình bày tóm tắt các kỹ thuật biến đổi hình” gồm có phép biến đổi hình 2D, phép biến đổi hình 3D, biến đổi hệ trục tọa độ, sử dụng phép biến đổi affine trong chương trình… Cuối bài nhóm em có cho chương trình mô phỏng để mô tả các kỹ thuật biến đổi hình. Trong quá trình làm còn có nhiều thiếu sót, rất mong thầy và các bạn đóng góp chân thành cho nhóm em! Xin chân thành cảm ơn!! Môn: Đồ họa máy tính PHẦN I: GIỚI THIỆU VỀ ĐỒ HỌA MÁY TÍNH Sự phát triển của khoa học, kĩ thuật, nghệ thuật, kinh doanh, và công nghệ luôn luôn phụ thuộc vào khả năng truyền đạt thôngtin của chúng ta, hoặc thông qua các bit dữ liệu lƣu trữ trong microchip hoặc thông qua giao tiếp bằng tiếng nói. Câu châmngôn từ xa xƣa “một hình ảnh có giá trị hơn cả vạn lời” hay “trăm nghe không bằng một thấy” cho thấy ý nghĩa rất lớn củahình ảnh trong việc chuyển tải thông tin. Hình ảnh bao giờ cũng được cảm nhận nhanh và dễ dàng hơn, đặc biệt là trong trƣờnghợp bất đồng về ngôn ngữ. Do đó không có gì ngạc nhiên khi mà ngay từ khi xuất hiện máy tính, các nhà nghiên cứu đã cốgắng sử dụng nó để phát sinh các ảnh trên màn hình. Trong suốt gần 50 năm phát triển của máy tính, khả năng phát siinh hìnhảnh bằng máy tính của chúng ta đã đạt tới mức mà bây giờ hầu như tất cả các máy tính đều có khả năng đồ họa. Đồ họa máy tính là một trong những lĩnh vực lí thú nhất và phát triển nhanh nhất của tin học. Ngay từ khi xuất hiện, đồhọa máy tính đã có sức lôi cuốn mãnh liệt, cuốn hút rất nhiều người ở nhiều lĩnh vực khác nhau như khoa học, nghệ thuật, kinh doanh, quản lí, Tính hấp dẫn và đa dạng của đồ họa máy tính có thể đƣợc minh họa rất trực quan thông qua việc khảo sát các ứng dụng của nó. I. Một số ứng dụng của đồ họa máy tính Ngày nay đồ họa máy tính được sử dụng trong rất nhiều lĩnh vực khác nhau công nghiệp, thương mại, quản lý,giáo dục, giải trí I.1. Hỗ trợ thiết kế Một trong những ứng dụng lớn nhất của đồ họa máy tính là hỗ trợ thiết kế (CAD - - computer-aided design). Ngày nay CAD đã được sử dụng hầu hết trong việc thiết kế các cao ốc, ô tô, máy bay, tàu thủy, tàu vũ trụ, máy tính, trang trí mẫu vải, vàrất nhiều sản phẩm khác. Sử dụng các chương trình này, đầu tiên các đối tượng được hiển thị dƣới dạng các phác thảo của phần khung (wireframeoutline), mà từ đó có thể thấy đƣợc toàn bộ hình dạng và các thành phần bên trong của các đối tượng. Sử dụng kĩ thuật này,ngƣời thiết kế sẽ dễ dàng nhận thấy ngay các thay đổi của đối tượng khi tiến hành hiệu chỉnh các chi tiết hay thay đổi góc nhìn, ….Một khi đã thiết kế xong phần khung của đối tượng, các mô hình chiếusáng, tô màu và tạo bóng bề mặt sẽ được kết hợp để tạo ra kết quả cuối cùngrất gần với thế giới thực . I.2. Lĩnh vực giải trí-nghệ thuật Môn: Đồ họa máy tính - Trong lĩnh vực nghệ thuật, các chương trình máy tính như Paint Shop Pro,Adobe Photoshop, 3D Studio, … hỗ trợ rất đắc lực cho các họa sĩ, các nhà tạo mẫutrong việc thiết kế các hình ảnh sống động, và rất thực. Với các chương trình này,người họa sĩ được máy tính tạo cho cảm giác y như đang làm việc ngoài đời thực bằngcách cung cấp các công cụ như khung vẽ, giá vẽ, bảng pha màu, các hiệu ứng ba chiều,… làm cho họ cảm thấy rất thoải mái và tiện lợi. - Ngoài ra đồ họa máy tính còn giúp tạo ra các chƣơng trình trò chơi, giải trí; hỗtrợ cho các kĩ xảo điện ảnh, cho các nhà làm phim. Có nhiều bộ phim rất nổi tiếng nhờ vào kĩ xảo điện ảnh như : Công viên Khủng long kỉ Jura (Jurassic Park), Titanic, Thế giới nước (Water World), … I.3. Giáo dục và đạo tạo - Hiện nay các chƣơng trình mô phỏng cấu trúc của các vật thể, tiến trình của các phản ứng hóa học, hoạt động của các góitin trên mạng máy tính, … được dùng rất nhiều trong việc hỗ trợ giảng dạy. - Trong đào tạo, các ứng dụng mô phỏng được dùng để kiểm tra trình độ người lái, huấn luyện phi công, điều khiển giaothông, … I.4. Giao tiếp giữa máy tính và người sử dụng - Mọi ứng dụng đều phải có giao diện giao tiếp với người dùng. Giao diện đồ họa thực sự là một cuộc cách mạng mang lại sự thuận tiện và thoải mái cho người dùng ứng dụng. Các ứng dụng dựa trên hệ điều hành MS Windows là một minh họa rất trực quan của giao diện đồ họa. Các chức năng của các ứng dụng này được thiết kế cho ngƣời dùng làm việc thông qua các biểu tượngmô tả chức năng đó. Ví dụ, chức năng lƣu tập tin được hiểu thông qua biểu tượng đĩa mềm, chức năng in ấn được hiểu thông qua biểu tượng máy in, … Để chọn các chức năng, người dùng sử dụng chuột trỏ đến và nhấn vào các biểu tượng tương ứng. Điểm thuận lợi chính khi dùng biểu tượng là kích thước không gian mà nó chiếm ít hơn nhiều so với dùng văn bản để mô tả cho cùng một chức năng, ngoài ra việc nắm bắt các chức năng qua các biểu tượng sẽ dễ dàng hơn rất nhiều khi người dùng gặp trở ngại về mặt ngôn ngữ. - Các ứng dụng có giao diện đồ họa còn cho phép người dùng khả năng làm việc dễ dàng với nhiều cửa sổ với nhiều dạng tài liệu khác nhau cùng một lúc. II. Khái niệm về đồ họa máy tính - Đồ họa máy tính là tất cả những gì liên quan đến việc sử dụng máy tínhđể phát sinh ra hình ảnh. Các vấn đề liên quan tới công việc này bao gồm :tạo, lưu trữ, thao tác trên các mô hình (các mô tả hình học của đối tượng) vàcác ảnh. - Theo định nghĩa này thì đồ họa máy tính bao gồm việc thiết kế phầncứng như thiết bị hiển thị, các thuật toán cần thiết để phát sinh các đường trêncác thiết bị này, các phần mềm được sử dụng cho cả người lập trình hệ thốngvà Môn: Đồ họa máy tính người lập trình ứng dụng đồ họa, và các chương trình ứng dụng tạo ảnh bằng máy tính,thiết kế, cài đặt và xây dựng, thông tin mà hình ảnh mang lại là hầu nhƣ không thể thiếu được. Kĩ thuật trực quan (scientific visualization) đã trở nên là một lĩnh vực rất quan trọng từ năm 1980, khi các nhà nghiên cứu khoa học và các kĩ sư nhận ra rằng họ không thể xử lí một lượng dữ liệu khổng lồ phát sinh từ các siêu máy tính mà dữ liệu không được tóm lược và làm nổi bật các xu hướng và hiện tượng qua nhiều loại biểu diễn đồ họa khác nhau. - Đồ họa máy tính tương tác là một trong những phương tiện mang lại thêm nhiều sự thuận lợi cho người dùng trong việc phát sinh hình ảnh kể từ khi có phát minh của máy ảnh và truyền hình. Với máy tính, chúng ta có thể tạo các hình ảnh khôngchỉ của các đối tượng cụ thể, thực tế, mà còn của các đối tượng trừu tượng, nhân tạo; các biểu diễn của dữ liệu mà không cótính kế thừa về mặt hình học, như là kết quả điều tra, khảo sát. Hơn nữa, với đồ họa máy tính chúng ta không bị giới hạn trong các ảnh tĩnh. Các ảnh động thông thường mang lại nhiều hiệu quả hơn so với ảnh tĩnh, đặc biệt là với các hiện tượng biến đổi theo thời gian, cả thực tế (như sự đổi hướng của cánh máy bay siêu âm, hay sự phát triển của khuôn mặt người từ lúc trẻ thơ tới lúc già) và trừu tượng (như là xu hướng phát triển của việc sử dụng năng lượng, gia tăng dân số, …). - Có nhiều cách tiếp cận trong việc học môn đồ họa, trải rộng từ việc nghiên cứu phần cứng tới việc học để sử dụng đồhọa máy tính chỉ trong một lĩnh vực chuyên biệt nào đó như là thiết kế mạch tích hợp cao (VLSI-very large scale integrated circuit). Ở đây chúng ta tiếp cận từ góc độ của người lập trình ứng dụng, đó là người sử dụng tất cả các hỗ trợ của phần cứng các công cụ phần mềm để xây dựng nên các ứng dụng. - Tuy nhiên để có thể thiết kế và cài đặt các chương trình ứng dụng đồ họa được tốt, ngoài việc tìm hiểu các khả năng củacông cụ lập trình, chúng ta cũng cần phải nắm vững các khái niệm về phần cứng; các vấn đề, các nguyên lí liên quan đến càiđặt phần mềm, các thuật toán, các ứng dụng, … Môn: Đồ họa máy tính PHẦN II: CÁC PHÉP BIẾN ĐỔI ĐỒ HỌA A. Các phép biến đổi hình học hai chiều I. Các phép biến đổi Affine(Affine Transformations) - Phép biến đổi Affine là phép biến đổi tuyến tính tọa độ điểm đặc trưng của đối tượng thành tập tương ứng các điểm mới để tạo ra các hiệu ứng cho toàn đối tượng. Ví dụ: Phép biến đổi tọa độ với chỉ 2 điểm đầu cuối của đoạn thẳng tạo thành 2 điểm mới mà khi nối chúng với nhau tạo thành đoạn thẳng mới. Các điểm nằm trên đoạn thẳng sẽ có kết quả là điểm nằm trên đoạn thẳng mới cùng với cùng phép biến đổi thông qua nội suy. II. Các phép biến đổi đối tượng 1. Phép biến đổi vị trí - Giả sử ta có điểm P=[x y] trong mặt phẳng với [x y] là vecto vị trí của P, kí hiệu là [X]. T= o Gọi ma trận T là ma trận biến đổi sẽ có dạng: y P P’ X o Ta có điểm P sau phép biến đổi thành P’ có giá trị [x’ y’]. o [X]*[T]=[x y] * = [(ax+cy)(bx+dy)]=[x’ y’] Hay x’=ax+cy y’=bx+dy Xét ma trận biến đổi T: 1.1. Phép bất biến - a=d=1 và b=c=0 và ma trận cho phép bất biến: T= [X]*[T]=[x y]*=[x y]=[x’ y’] 1.2. Phép biến đổi tỷ lệ(scaling) - Nếu d=1 và b=c=0 thì ma trận biến đổi là T= Môn: Đồ họa máy tính x’=ax y’=y P’ dịch chuyển theo trục x với tỷ lệ a xác định. [X]*[T]=[x y]*=[(ax) y]=[x’ y’] - Nếu b=c=0 thì ma trận biến đổi là: T= [X]*[T]=[x y]*= [ax dy]=[x’ y’] 1.3. Các biến dạng - Khi a=d=1 thì tọa độ P’ phụ thuộc vào thay đổi b và c o Xét c= 0 [X]*[T]=[x y]*= [x bx+y]=[x’ y’] Có P’ không thay đổi giá trị tọa độ x, còn y’ thay đổi phụ thuộc vào cả b và x - Xét b=0 [X]*[T]=[x y]*= [x +cy y]=[x’ y’] 1.4. Phép quay [T]= III. Phép biến đổi tổng hợp [X*]= [X]*[T3]=[x y]*= [y -x] B. TỌA ĐỘ ĐỒNG NHẤT VÀ CÁC PHÉP BIẾN ĐỔI I. Tọa độ đồng nhất - Phép biến đổi tổng hợp: P’’=P’*[T’]+[T’’]=(P+[T])[T’]+[T’’] - Tọa độ đồng nhất của vector vị trí [X]=[x y 1]. Khi đó mặt trận biến đổi sẽ là 3x3: Môn: Đồ họa máy tính [T]= P’=P.[T]=[x y 1]* x’=ax+cy+dx y’=bx+dy+dy [X’]=[x’ y’ 1] Trong đó dx,dy là khoảng tịnh tiến theo trục x và y. II. Phép biến đổi với tọa độ đồng nhất - Ma trận biến đổi đồng nhất [T]= 1. Phép tịnh tiễn - Có a=d=1 và b=c=0 [T]= [x’ y’ 1]=[x y 1] =[x+m y+n 1] 2. Phép tỷ lệ - Tương tự ma trận tỷ lệ: [Ts]= [x’ y’ 1]=[x y 1] =[x.Sx y.Sy 1] 3. Phép quay [x’ y’ 1]=[x y 1] =[(xcos ) (xsin ) 1] C. CÁC PHÉP BIẾN ĐỔI HÌNH HỌC BA CHIỀU I. Phép biến đổi tỷ lệ - Phép biến đổi tỉ lệ làm thay đổi kích thước đố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à Sx và Sy (gọi là các hệ số tỉ lệ), ta nhân Sx và Sy lần lượt cho các tọa độ của P. Môn: Đồ họa máy tính - Khi các giá trị Sx , Sy nhỏ hơn 1, phép biển đổi sẽ thu nhỏ đối tượng. Ngược lại, khi các giá trị này lớn hơ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 (uniform scaling). Đâ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|<1. - Nếu hai hệ số tỉ lệ khác nhau thì ta gọi là phép không đồng dạng. Trong trường hợp hoặc Sx hoặc Sy có giá trị 1, ta gọi đó là phép căng (strain). II. Phép quay - 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 qui ước là chiếu ngược chiều kim đồng hồ. 1. Phép quay quanh gốc tọa độ - Ta có công thức biến đổi của phép quay điểm P(x,y) quanh gốc tọa độ góc θ (xem hình 1): Hay Q = P*M với M= cosθ sinθ -sinθ cosθ - Phép quay quanh gốc tọa độ. Môn: Đồ họa máy tính 2. Phép quay quanh 1 điểm bất kỳ - Xét điểm P(P.x,P.y) quay quanh điểm V(V.x, V.y) một góc θ đến điểm Q(Q.x,Q.y). Ta có thể xem phép quay quanh tâm V được kết hợp từ phép các biến đổi cơ bản sau: - Phép tịnh tiến (-V.x, -V.y) để dịch chuyển tâm quay về gốc tọa độ - Quay quanh gốc tọa độ O một góc θ. - Phép tịnh tiến (+V.x, +V.y) để đưa tâm quay về vị trí ban đầu. Ta cần xác định tọa độ của điểm Q (xem hình 2 ) [...]... M= 1 0 0 1 IV Phép biến dạng - Phép biến dạng biến đổi làm thay đổi, méo mó hình dạng của các đối tượng - Biến dạng theo phương trục x sẽ làm thay đổi hoành độ còn tung độ giữ nguyên - biến đổi điểm P(P.x, P.y) thành điểm Q(Q.x, Q.y) theo phương trục x là phép biến đổi được biểu diễn bởi phương trình sau: Môn: Đồ họa máy tính M= 1 0 h 1 - Biến dạng theo phương trục y sẽ làm thay đổi tung độ còn hoành...Môn: Đồ họa máy tính - Từ phép tịnh tiến (-V.x,-V.y) biến đổi điểm P thành P' ta được: P' = P + V hay - Phép quay quanh gốc tọa độ biến đổi điểm P' thành Q' Q' = P'.M - Phép tịnh tiến (+V.x, +V.y) biến đổi điểm Q' thành Q ta được: Q = Q' + V hay Vậy Q = P.M + tr Với III Phép đối xứng Môn: Đồ họa máy tính - 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° - Phương trình. .. dạng theo phương trục y sẽ làm thay đổi tung độ còn hoành độ giữ nguyên M= 1 g 0 1 V - Phép quay ba chiều 1 Quay quanh các trục tọa độ Phép quanh quanh các trục tọa độ ox, oy và oz với góc dương: o Quay quanh trục oz o Quay quanh trục ox: o Qua quanh trục oy: PHẦN III: CHƯƠNG TRÌNH MÔ PHỎNG Bài 1: #include #include #include #include #define RADS 0.017453293 void... line(getmaxx()/2+x2,getmaxy()/2-y2,getmaxx()/2+x3,getmaxy()/2-y3); line(getmaxx()/2+x3,getmaxy()/2-y3,getmaxx()/2+x1,getmaxy()/2-y1); } void Function3(int x1, int y1, int x2, int y2, int x3,int y3,int xq,int yq,int goc){ float x11,y11,x22,y22,x33,y33; Môn: Đồ họa máy tính float anpha=RADS*goc; x11=int(x1*cos(anpha)-y1*sin(anpha) + (1cos(anpha))*xq+sin(anpha)*yq); y11=int(x1*sin(anpha)+y1*cos(anpha)-sin(anpha)*xq+(1cos(anpha))*xq); x22=int(x2*cos(anpha)-y2*sin(anpha)+(1cos(anpha))*xq+sin(anpha)*yq);... int x1=50,y1=20,x2=50,y2=100,x3=200,y3=20; int xq=100, yq=100; float goc=30; Function1(); Function2(x1,y1,x2,y2,x3,y3); Function3(x1,y1,x2,y2,x3,y3,xq,yq,goc); getch(); closegraph(); } -Hình hiển thị Môn: Đồ họa máy tính Câu 2: Cho đoạn AB trong không gian có tọa độ A(2,1,1) và B(1,3,4) quay đoạn thẳng quanh trục một góc 30 độ Bài làm: #include #include #include #include... line(10,getmaxy()/2,getmaxx()-10,getmaxy()/2); line(getmaxx()/2,10,getmaxx()/2,getmaxy()-10); } void Function2(int x1, int y1, int x2, int y2,int x3, int y3){ line(getmaxx()/2+x1,getmaxy()/2-y1,getmaxx()/2+x2,getmaxy()/2-y2); Môn: Đồ họa máy tính line(getmaxx()/2+x2,getmaxy()/2-y2,getmaxx()/2+x3,getmaxy()/2-y3); line(getmaxx()/2+x3,getmaxy()/2-y3,getmaxx()/2+x1,getmaxy()/2-y1); } void Function3(int x1, int y1, int x2, int y2,... initgraph(&driver,&mode,”F:\\TC\\BGI”); int x1=20,y1=10,x2=100,y2=300,x3=10,y3=40; int xq=100, yq=100; float goc=145; Function1(); Function2(x1,y1,x2,y2,x3,y3); Function3(x1,y1,x2,y2,x3,y3,xq,yq,goc); getch(); closegraph(); } Môn: Đồ họa máy tính  Hình hiển thị . bản mới. Cuốn tài liệu này nhóm em “ trình bày tóm tắt các kỹ thuật biến đổi hình” gồm có phép biến đổi hình 2D, phép biến đổi hình 3D, biến đổi hệ trục tọa độ, sử dụng phép biến đổi affine trong. Môn: Đồ họa máy tính BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC THÀNH ĐÔ KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN MÔN : Đồ Họa Máy Tính Đề Tài: Các kỹ thuật biến đổi hình-chương trình mô phỏng Giáo. họa máy tính PHẦN II: CÁC PHÉP BIẾN ĐỔI ĐỒ HỌA A. Các phép biến đổi hình học hai chiều I. Các phép biến đổi Affine(Affine Transformations) - Phép biến đổi Affine là phép biến đổi tuyến tính tọa

Ngày đăng: 03/11/2014, 14:10

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w