Giáo trình Lập trình JAva 2D and 3D
hần 1 . 9 Lập trình đồ họa với Java 2D . 9 Chương 1 . 10 Tổng quan về Java 2D API . 10 1.1 Enhanced Graphics, Text, and imaging . 10 1.2 Rendering Model . 11 1.2.1 Coordinate Systems . 12 1.2.1.1 User Space . 12 1.2.1.2 Device Space . 13 1.2.2 Transforms . 14 1.2.3 Fonts . 15 1.2.4 Images . 16 1.2.5 Fills and Strokes . 17 1.2.6 Composites . 18 Backward Compatibility and Platform independence . 19 1.3.1 Backward Compatibility . 19 1.3.2 Platform independence . 21 1.4 The Java 2D™ API Packages . 21 Chương 2: . 25 Rendering with Graphics2D . 25 2.1 Các lớp và giao diện. . 26 2.2 Rendering Concepts . 27 2.2.1 Rendering Process . 28 2.2.2 Controlling Rendering Quality . 29 2.2.3 Stroke Attributes . 31 2.2.4 Fill Attributes . 32 Quá trình xử lý theo phiên . 34 2.2.5 Clipping Paths . 34 2.2.6 Transformations . 35 2.2.6.1 Constructing an AffineTransform . 37 2.2.7 Composite Attributes . 38 2.2.7.1 Managing Transparency . 39 2.2.7.2 Transparency and images . 40 2.3 Thiết lập Graphics2Context . 40 2.3.1 Setting Rendering Hints . 40 2.3.2 Specifying Stroke Attributes . 41 2.3.2.1 Setting the Stroke Width . 41 2.3.2.2 Specifying Join and Endcap Styles . 42 2.3.2.3 Setting the Dashing Pattern . 42 2.3.3 Specifying Fill Attributes . 44 2.3.3.1 Filling a Shape with a Gradient . 44 2.3.3.2 Filling a Shape with a Texture . 45 2.3.4 Setting the Clipping Path . 46 2.3.5 Setting the Graphics2D Transform . 48 2.3.6 Specifying a Composition Style . 51 2.3.6.1 Using the Source Over Compositing Rule . 51 2.3.6.2 Increasing the Transparency of Composited Objects . 51 2.4 Rendering Graphics Primitives . 53 2.4.1 Drawing a Shape . 53 2.4.2 Filling a Shape . 55 Lập trình đồ họa trên Java 2D và 3D 2.4.3 Rendering Text . 56 2.4.4 Rendering images . 56 2.5 Defining Custom Composition Rules . 56 2.6 Rendering in a Multi-Screen Environment . 57 Chương 3 . 75 Các đối tượng hình họa . 75 3.1 Giao diện và lớp. . 75 3.2 Các khái niệm hình học: . 78 3.2.1 Constructive Area Geometry . 79 3.2.2 Bounds and Hit Testing . 80 3.3 Combining Areas to Create New Shapes . 88 Chương 4: . 94 Hiển thị Font và văn bản . 94 4.1.Giao diện và lớp. . 94 4.2.Các khái niệm về Font . 96 4.3 Các khái niệm về Text Layout. . 98 4.3.1 Vẽ chữ. . 99 4.3.2 Ordering Text . 101 4.3.3 Đo và định vị văn bản . 103 4.3.4 Hỗ trợ thao tác với văn bản. . 104 4.3.4.1 Hiển thị dấu nhắc . 104 4.3.4.2 Di chuyển dấu nhắc. . 106 4.3.4.3 Hit Testing . 107 4.3.4.4 Đánh dấu vùng lựa chọn. . 108 4.3.5 Thực thi việc hiển thị văn bản trong ứng dụng Java™ . . 109 Quản lý việc hiển thị văn bản. . 110 4.4.1 Trình bày văn bản. . 111 Hiển thị dấu nhắc kép. . 112 4.4.3 Di chuyển dấu nhắc. . 113 4.4.4 Hit Testing . 114 4.4.5 Đánh dấu vùng lựa chọn. . 115 4.4.6 Querying Layout Metrics . 115 4.4.7 Vẽ văn bản trên nhiều dòng. . 116 Chương 5 . 126 Tạo ảnh . 126 5.1 Các giao diện và các lớp . 126 5.1.1 Các giao diện imaging (imaging interfaces) . 127 5.1.2 Các lớp dữ liệu ảnh(image Data Classes) . 127 5.1.3 image Operation Classes . 129 5.1.4 Sample Model Classes . 130 Color Model Classes . 131 5.1.6 Exception Classes . 132 5.2 Immediate Mode imaging Concepts . 133 5.2.1 Terminology . 135 5.3 Using Bufferedimages . 136 5.3.1 Creating a Bufferedimage . 136 5.3.2 Drawing in an Offscreen Buffer . 137 5.3.2.1 Creating an Offscreen Buffer . 138 5.3.2.2 Drawing in an Offscreen Buffer . 140 5.3.3 Manipulating Bufferedimage Data Directly . 141 Lập trình đồ họa trên Java 2D và 3D 5.3.4 Filtering a Bufferedimage . 142 5.3.5 Rendering a Bufferedimage . 142 5.4 Managing and Manipulating Rasters . 150 5.4.1 Creating a Raster . 150 5.4.2 Parent and Child Rasters . 151 5.4.4 The WritableRaster Subclass . 151 5.5 Image Data and DataBuffers . 152 5.6 Extracting Pixel Data from a SampleModel . 153 5.7 ColorModels and Color Data . 154 5.7.1 Lookup Table . 155 5.8 image Processing and Enhancement . 155 5.8.1 Using an image Processing Operation . 158 Chương 6 . 162 Mầu sắc . 162 6.1 Các lớp . 163 6.2 Những định nghĩa về mầu sắc. . 163 6.2.1 Không gian mầu . 164 6.2.1 Biểu diễn màu . 167 Chương 7 . 171 In ấn . 171 7.1 Các giao diện và các lớp . 171 7.2.1 Supporting Printing . 174 7.2.1.1 Điều khiển in (Job Control) . 174 7.2.2 Page Painters . 175 7.2.3 Printable Jobs and Pageable Jobs . 177 7.2.4 Typical Life-Cycle of a PrinterJob . 178 7.3 Printing with Printables . 181 7.3.2 Printing a File . 185 7.4.1 Using a Pageable Job . 191 7.4.2 Using Multiple Page Painters . 193 Phần 2 . 206 Lập trình đồ họa với Java 3D . 206 CHƯƠNG 1 . 207 NHẬP MÔN LẬP TRÌNH TRÊN JAVA 3D . 207 1.1 Tổng quan về Java 3D API ™ . 207 1.2 Các vấn đề cơ bản về Java 3D API™ . 208 1.3 Xây dựng đồ thị khung cảnh . 208 1.3.1 Thừa kế cấp cao từ Java 3D API . 214 1.4 Cách thức để viết một chương trình Java 3D . 216 1.4.1 Công thức đơn giản để viết một chương trình Java 3D . 216 1.5 Một vài thuật ngữ trong Java 3D . 221 1.6 Ví dụ đơn giản: HelloJava3Da . 223 1.6.1 Các lớp của Java 3D Classes được sử dụng trong HelloJava3Da . 229 Tạo nên hình lập phương có kích thước được định ra bởi các giá trị cho trước. . 233 1.7 Quay hình lập phương . 233 1.7.1 Sự kết hợp của các phép biến hình: HelloJava3Db . 235 1.8 Khả năng và hoạt động . 236 1.8.1 Dịch các nội dung . 236 1.8.2 Khả năng . 237 1.9 Thêm vào các hành vi animation . 239 Lập trình đồ họa trên Java 2D và 3D 1.9.1 Định nghĩa các hành vi animation . 240 1.9.2 Các hàm biến đổi về thời gian: Ánh xạ một hành vi với thời gian . 241 1.9.3 Lập danh mục các vùng . 242 1.9.4 Ví dụ về hành vi: HelloJava3Dc . 243 1.9.5 Phép biến hình và kết hợp các hành vi .Ví dụ: HelloJava3Dd . 246 CHƯƠNG 2 . 251 Tạo các hình . 251 2.1 Hệ tọa độ thế giới ảo . 251 2.2 Visual Object Definition Basics . 252 2.2.1 An Instance of Shape3D Defines a Visual Object . 252 2.2.2 Node Components . 254 2.2.3 Defining Visual Object Classes . 255 2.3 Các lớp tiện ích hình học . 256 2.3.1 Box . 257 2.3.2 Cone . 259 2.3.3 Cylinder . 259 2.3.4 Sphere . 260 2.3.5 More About Geometric Primitives . 261 2.3.6 ColorCube . 261 2.3.7 Example: Creating a Simple Yo-Yo From Two Cones . 261 2.4 Các lớp toán học . 267 2.4.1 Point Classes . 271 2.4.2 Color Classes . 272 2.4.3 Vector Classes . 274 2.4.4 TexCoord Classes . 275 2.5 Các lớp hình học . 276 2.5.1 GeometryArray Class . 277 2.5.2 Subclasses of GeometryArray . 284 2.5.3 Subclasses of GeometryStripArray . 286 2.5.4 Subclasses of IndexedGeometryArray . 293 2.5.5 Axis.java is an Example of IndexedGeometryArray . 296 2.6 Appearance and Attributes . 296 2.6.1 Appearance NodeComponent . 298 2.6.2 Sharing NodeComponent Objects . 298 2.6.3 Attribute Classes . 299 2.6.4 Example: Back Face Culling . 310 2.7 Bounds and Scope . 320 2.7.1 Bounds Node Components . 321 2.7.2 BoundingLeafa Node . 325 2.7.3 Scope . 327 2.8 Hình học nâng cao . 329 2.8.1 Multiple Geometries in a Single Shape3D . 329 2.8.2 GeometryArray . 332 2.8.4 AlternateAppearance <new in 1.2> . 340 2.9 Clipping – Cắt xén . 343 2.9.1 View Defines a Frustum . 343 2.9.2 Clip Node . 345 2.9.4 ModelClip Example . 346 CHƯƠNG 3 . 350 TẠO NỘI DUNG . 350 Lập trình đồ họa trên Java 2D và 3D 3.1 Nội dung chính . 350 3.1.1 GeometryInfo . 351 3.2.1 Một ví dụ đơn giản về GeometryInfo . 351 3.2.2 Sử dụng GeometryInfo . 352 3.2.3 Một số lớp thông dụng có liên quan đến GeometryInfo . 353 Loaders . 358 Một ví dụ đơn giản sử dụng leader. . 359 Các loader phổ biến . 360 3.3.3 Giao diện của gói Loader và lớp cơ sở . 361 Viết một loader . 365 Công việc của một loader . 365 Hàm tạo lớp Loader . 366 Viết một File Loader đơn giản . 368 Text2D . 379 3.5.1 Ví dụ Text2D đơn giản . 380 3.5.2 Lớp Text2D . 380 Text3D . 382 Một ví dụ Text3D . 382 Những lớp liên quan để tạo ra đối tượng Text3D . 384 Nền không gian đồ họa . 391 Một ví dụ background . 391 Lớp Background . 392 CHƯƠNG 4 . 396 TƯƠNG TÁC . 396 4.1 Hành vi: Cơ sở của tương tác và hoạt hình . 397 4.1.1 Ứng dụng của hành vi . 397 4.1.2 Tổng quan lớp Behaviour . 399 4.2 Cơ bản về hành vi . 399 4.2.1 Viết một lớp Behaviour . 400 4.2.2 Sử dụng một lớp Behaviour . 405 4.2.3 Các hàm API trong lớp Behaviour . 409 4.3 Điều kiện kích hoạt: Cách kích hoạt các hành vi . 412 4.3.1 Điều kiện kích hoạt . 413 4.3.2 WakeupCriterion . 414 4.3.3 Quy định lớp WakeupCriterion . 414 4.3.4 Thành phần của WakeupCondition . 430 4.4 Lớp Behaviour tiện ích xử lý bàn phím . 432 4.4.1 Một ví dụ đơn giản . 433 4.4.2 Lớp KeyNavigatorBehaviour và KeyNavigator . 435 4.5 Lớp tiện ích tương tác với chuột . 437 4.5.1 Sử dụng lớp MouseBehaviour . 437 4.5.2 Mouse Behaviour Foundation . 442 4.5.3 Các lớp MouseBehaviour . 444 4.5.4 Mouse Navigation . 447 4.6 Picking Object . 450 4.6.1 Using Picking Utility Classes . 454 4.6.2 Các hàm API cơ bản trong các lớp Picking . 458 4.6.3 Các lớp picking . 467 4.6.4 Các lớp Picking Behavior . 471 CHƯƠNG 5 . 474 Lập trình đồ họa trên Java 2D và 3D Hoạt Hình . 474 Animation - Hoạt hình: . 476 Đối tượng Interpolator và Alpha với hoạt ảnh dựa thời gian . 477 Alpha . 477 Sử dụng các đối tượng Interpolator và Alpha: . 480 Ví dụ sử dụng lớp Alpha và RotationInterpolator: . 480 Alpha API: . 486 Các lớp hành vi Interpolator : . 489 Core Interpolator API: . 504 Các lớp đối tượng nội suy đường: . 513 Lớp Billboard : . 522 Sử dụng đối tượng Billboard . 523 Chương trình ví dụ sử dụng Billboard . 525 Giao diện lập trình ứng dụng của Billboard (Billboard API) . 529 OrientedShape3D . 531 Giao diện lập trình ứng dụng của OrientedShape3D . 532 Ví dụ sử dụng OrientedShape3D . 533 Hoạt ảnh mức chi tiết (Level Of Detail Animations) . 535 Sử dụng đối tượng DistanceLOD . 536 Các lỗi thường gặp khi sử dụng LOD . 537 Ví dụ sử dụng DistanceLOD . 537 Giao diện lập trình ứng dụng DistanceLOD API . 544 Morph . 545 Sử dụng đối tượng Morph . 546 Ví dụ sử dụng Morph . 547 Giao diện lập trình ứng dụng Morph API . 553 Giao diện GeometryUpdater . 554 Sử dụng GeometryUpdater . 555 Chương trình ví dụ hệ thống phân tử đài phun nước sử dụng GeometryUpdater . 556 Lời nói đầu
Các file đính kèm theo tài liệu này:
- Lap-Trinh-Java2D-and-3D.pdf