BỘ GIÁO DỤC VÀ ĐÀO TẠO TR NG CAO ĐẲNG CÔNG NGH THÔNG TIN TP.HCM KHOA CÔNG NGH THÔNG TIN KHÓA LU N TỐT NGHI P TÌM HI U L P TRÌNH Đ HỌA 3D TRONG WINDOWS PRESENTATION FOUNDATION Giảng viên h ng d n: ThS.TR N MINH THÁI Sinh viên thực hi n: TR N THỊ DÂN MSSV: 3.488 Ngành: Công ngh ph n m m Khóa 2007 – 2010 Tp. H Chí Minh, tháng 07 năm 2010 M Đ U Ngày nay, công nghệ thông tin phát triển mạnh mẽ, trong các ứng dụng hiện đại, giao diện ngư i dùng trực quan chiếm vị trí hết sức quan trọng. Việc trình diễn đúng thông tin, theo đúng cách và vào đúng th i điểm có thể đem lại những giá trị kinh tế xã hội đáng kể. Với những ứng dụng thương mại, chẳng hạn một ứng dụng bán hàng trực tuyến, việc cung cấp một giao diện ngư i dùng mạnh có thể tạo nên sự khác biệt giữa một công ty với các đối thủ cạnh tranh, góp phần làm tăng tăng doanh số và giá trị thương hiệu của hãng này so với hãng khác.
Để có được một giao diện ngư i dùng như vậy, việc tích hợp đồ họa, media, văn bản và các thành phần trực quan khác như một thể thống nhất đóng đóng vai trò mấu chốt và WPF đã làm được điều này. Điểm nổi bật nhất của WPF là hiển thị hình ảnh bằng đồ họa 3D, WPF giúp cho những ai đam mê đồ họa 3D mà không thể tiếp cận nó trên công cụ phức tạp OpenGL hay DirectX. WPF tích hợp sẵn DirectX giúp ngư i lập trình phát triển ứng dụng 3D một cách dễ dàng mà khôn phải quan tâm đến sự phức tạp của DirectX. WPF là sản phẩm của Microsoft, một tổ chức nghiên cứu đông đảo và đội ngũ kỹ thuật cao, WPF đang dần lang rộng khắp thế giới và trong tương lai không xa WPF sẽ tr thành một trong những công nghệ phổ biến nhất trong thế giới lập trình ứng dụng.
Xuất phát từ các lý do trên em nghiên cứu về công nghệ WPF này nhằm cung cấp cho mọi ngư i một sự hiểu biết nhất định về công nghệ sẽ phát triển trong một tương lai không xa. Rất mong sự đóng góp ý kiến của quý thầy cô để em có thêm kinh nghiệm cũng như những ý tư ng hay trong công nghệ mà mình nghiên cứu. L IC M N L i đầu tiên em xin bày tỏ lòng biết ơn chân thành nhất đến quý Thầy Cô trong Khoa Công Nghệ Thông Tin, trư ng Cao Đẳng Công Nghệ Thông Tin Tp.Hô Chí Minh đã tận tình giảng dạy, hướng dẫn, giúp đỡ và tạo điều kiện cho em trong suốt th i gian học tập tại trư ng. Em xin chân thành cảm ơn thầy Trần Minh Thái – Ngư i đã tận tình hướng dẫn, giúp đỡ em trong suốt th i gian thực hiện luận văn này.
Và con xin chân thành cảm ơn gia đình đã luôn động viên, ủng hộ vật chất lẫn tin thần trong suốt th i gian qua. Em xin cảm ơn sự quan tâm, giúp đỡ và ủng hộ của anh chị, bạn bè trong quá trình thực hiện khóa luận. Cuối cùng, em xin chúc quý Thầy Cô trư ng Cao đẳng công nghệ thông tin Tp.HCM, Thầy Trần Minh Thái, l i chúc sức khỏe và luôn gặt hái được nhiều thành công trong cuộc sống.Hồ Chí Minh, tháng 07 năm 2010 NH N XÉT C A GIÁO VIểN H NG DẪN. Ngày … tháng … năm 2010 Ký tên NH N XÉT C A GIÁO VIÊN PH N BI N.
Ngày … tháng … năm 2010 Ký tên M CL C M Đ U. 1 PH N I: T NG QUAN. 4 V WINDOWS PRESENTATION FOUNDATION. Sự ra đ i c a Windows Presentation Foundation(WPF).
ng d ng c a WPF. B th vi n c a WPF. 10 PH N II: GI I THI U V 3D. 11 CH NG 1: GI I THI U GÓC NHÌN, ÁNH SÁNG VÀ MÔ T KHÔNG GIAN T A Đ.
Tọa độ ba chiều. Điểm trong không gian. Mô t không gian t a đ. Hình nh đ ng.
Phép bi n đ i hình. Phép dịch chuyển (TranslateTranform3D). Phép biến đổi kích thước (ScaleTransform3D). Phép biến đổi bằng ma trận (MatrixTransform3).
57 CH NG 3: TÔ MÀU CHO HÌNH 3D. Sử d ng c v Gradient. Sử d ng c v Tile. 85 CH NG 4: NG D NG.
Giao di n ng d ng. Các dòng sự ki n chính. 98 TÀI LI U THAM KH O. 99 DANH M C CÁC HÌNH, B NG BI U VÀ S Đ Hình 1: Hình hộp có sử dụng Light.13 Hình 2: Hình hộp không sử dụng Light.13 Hình 1-1: Hình tròn.14 Hình 1-2: Hình quả bóng.1-1: Hệ trục tọa độ.15 Hình 2-1: Camera với góc nhìn 50mm.19 Hình 2-2: Camera với góc nhìn 100mm.19 Hình 2-3: Camera với góc nhìn 25mm.20 Hình 2-4: Camera với góc nhìn 45 độ.20 Hình 2-5: Hình hộp sử dụng PerspectiveCamera.22 Hình 2-6:Cách xác định OrthographicAerialView.23 Hình 2-7: Hình hộp sử dụng OrthographicCamera.1-1: Hình minh họa sử dụng DirectionalLight.2-1: Hình minh họa sử dụng PoinLight.3-1: Hình minh họa sử dụng SpotLight.4-1: Hình minh họa sử dụng AmbientLight.27 Hình 4-1: Hình ảnh tam giác trên mặt phẳng.28 Hình 4-2: Cách xác định các đỉnh dựa trên hệ trục tọa độ Oxyz.29 Hình 4-3: Mặt trước của hình vuông Hình 4-4: Mặt sau của hình vuông .30 Bảng 3: Các thuộc tính biến đổi.1-1: Cách tham chiếu trên hệ trục tọa độ để vẽ một vật thể.1-2: Hình ảnh được vẽ bằng cách nói các đoạn thẳng.1-1: Vật thể được xoay với một góc 30 độ.1-2: Vật thể được xoay với một góc -30 độ.2-1: Các điểm x, y trên hệ trục tọa độ Oxy.2-2: Góc và đư ng thẳng của điểm x,y trên hệ trục Oxy.2-3: Cách khác để xác định 2 điểm x,y.2-4: Số phức trên hệ trục tọa độ số phức.2-5: Số phức với góc θ.54 Hình 1-1: Tọa độ dùng xác định cọ vẽ.66 Hình 1-2: Chuyển đổi cọ vẽ tam giác 2 chiều sang tam giác 3 chiều.67 Hình 1-3: Vật thể sử dụng cọ vẽ Gradient.1-1: Cọ vẽ sử dụng ImageBrush.1-2: Hình ảnh sau khi được thay đổi giá trị TextureCoordinates.1-3: Hình ảnh khi sử dụng ViewboxUnit.1-4: Hình ảnh sau khi có sử dung thêm thuộc tính TileMode.1-5: Hình ảnh khi sử dụng thuộc tính TileMode với kiểu FlipXY.2-1: Sử dụng DrawingBrush tô theo kiểu hình ellipse lấy từ resource.2-2: Sử dụng DrawingBrush tô theo kiểu hình chữ nhật lấy từ resource.2-3: Sử dụng DrawingBrush tô theo kiểu sọc chéo lấy từ windowns.3-1: Khối lập phương được tô bằng những khối lập phương nhỏ.91 Hình 3: Giao diện chính.93 Bảng 1: Thành phần giao diện theo yêu cầu và những công nghệ chuyên biệt cần thiết để tạo chúng.
10 Bảng 2: Các thuộc tính của Light. 25 Bảng 3: Các thuộc tính biến đổi. 37 Bảng 4: Bảng mô tả các thành phần của giao diện. 96 Sơ đồ 1: Cấu trúc đơn giản để tạo ra hình hộp 3D.
11 Sơ đồ 2: Lớp con trong lớp Media. 17 Từ g c Từ vi t tắt Windows Presentation Foundation WPF Extention MakeUp Language XAML Đồ họa ba chiều trong Windows Presentation Foundation WPF 3D User Interface UI B ng: Danh sách các từ viết tắt. M Đ U Công ngh Windows Presentation Foundation Khi khoảng cách công nghệ giữa các nhà sản xuất không còn quá xa, khi tính năng giữa các phần mềm không còn nhiều khác biệt thì là lúc giao diện nổi lên như là một trong những giá trị cạnh tranh cho mỗi sản phẩm phần mềm. Dù đó là web hay là phần mềm ứng dụng thì một giao diện hấp dẫn, thân thiện luôn là điểm nhấn cho mỗi sản phẩm đó.
Windows Presentation Foundation (WPF) là một trong những công nghệ mới với những ưu điểm nổi bật cho việc thiết kế và lập trình giao diện. Với công nghệ từ trước năm 2006, thì việc biểu diễn hiệu quả tất cả các tính năng hoạt động như một ứng dụng Window riêng biệt chạy trên desktop, đồng th i có thể truy cập thông tin thông qua trình duyệt đòi hỏi xây dựng hai phiên bản độc lập sử dụng hai công nghệ khác nhau. Và việc hợp nhất giữa ngư i thiết kế và ngư i lập trình cũng gặp không ít những khó khăn. Windows Presentation Foundation ra đ i không những giải quyết được các vấn đề trên mà còn có những ưu điểm về đồ họa, âm thanh, video… Với việc sử dụng ngôn ngữ XAML(Extention MakeUp Language) giúp cho việc quản lý các tập tin dễ dàng hơn.
Đặc biệt, điểm nổi bật nhất của WPF là đồ họa ba chiều. Khó khăn nhất cho những lập trình viên khi lập trình với DirectX đó chính là card đồ họa mà nhà cung cấp hỗ trợ DirectX. Và gi đây WPF có khả năng thực thi những công việc dựa trên những tính toán phần mềm thay vì những đặc điểm mà nhà cung cấp phần cứng tạo ra. WPF sẽ xác đính sự hỗ trợ của phần cứng với những hiệu ứng đồ họa được tạo ra.
Và bạn không cần phải bận tâm về điều đó. L ch sử ra đ i vƠ t ng lai c a WPF L ch sử ra đ i WPF là một trong những công nghệ mới nhất trong .5) của Microsoft, là hệ thống API mới hỗ trợ việc xây dựng giao diện đồ hoạ trên nền Windows. WPF được giới thiệu lần đầu tiên cùng với .0 vào ngày 21 tháng 11 năm 2006. Và phát hình phiên bản chính thức đầu tiên vào ngày 30 tháng 4 năm 2007.
Trang 1 Tiếp sau đó là WPF 2.0 được phát hành vào ngày 22 tháng 7 năm 2009, và vừa mới đây là WPF 4.0) được phát hành vào ngày 7 tháng 6 năm 2010. T ng lai c a WPF Việc Microsoft chính thức ra mắt bộ công cụ Visual Studio 2010 và nền tảng phát triển. Sự kiện này đã và đang m ra hướng mới trong ngành công nghiệp phần mềm, với sự linh hoạt và khả năng xây dựng ứng dụng một cách nhanh chóng mà vẫn đáp ứng được những yêu cầu ngày các khắt khe của ngư i dùng. LỦ do ch n đ tƠi WPF được xem là thế hệ kế tiếp của Windowns, tăng cư ng khả năng lập trình giao diện của lập trình viên bằng cách cung cấp API cho phép tận dụng những lợi thế về đa phương tiện hiện đại, các công nghệ sẵn có khác nhau và lợi thế của card đồ họa.
Đặc biệt sử dụng DirectX làm công nghệ cơ s để xây dựng nên những hiệu ứng - DirectX là công nghệ đồ họa của Microsoft, tận dụng được khả năng của phần cứng để tăng tốc chương trình .