Sinopsis
Consider that we are about to embark on the design and implementation of a software system that has a geometric component. We decide to take a longterm look and to craft a set of geometric classes with enough care so that there would be a high likelihood that we reuse the classes in the next project we tackle. This chapter discusses the decisions that need to be made when designing a set of classes for points, lines, and other objects in planar Euclidean geometry.
Since the geometry tackled is familiar, there is little need to formalize the properties of the Euclidean plane and space. Although the details for designing classes for Euclidean geometry in the plane are quite simple, it is instructive to go through these details, partly because it will then be easier to appreciate the need for more complex structures, but also because doing so has the parallel benefit of acting as a review of C++. It is clear, for example, that we need classes for a point, a line, and a segment and that Cartesian coordinates will be used.
Content
- 2D Computational Euclidean Geometry
- Geometric Predicates
- 3D Computational Euclidean Geometry
- Affine Transformations
- Affine Intersections
- Genericity in Geometric Computing
- Numerical Precision
- 1D Computational Spherical Geometry
- 2D Computational Spherical Geometry
- Rotations and Quaternions
- Projective Geometry
- Homogeneous Coordinates for Projective Geometry
- Barycentric Coordinates
- Oriented Projective Geometry
- Oriented Projective Intersections
- Homogeneous Coordinates for Euclidean Geometry
- Coordinate-Free Geometric Computing
- Introduction to CGAL
- Segment Scan Conversion
- Polygon-Point Containment
- Illumination and Shading
- Raster-Based Visibility
- Ray Tracing
- Tree Drawing
- Graph Drawing
- Boundary Representations
- The Halfedge Data Structure and Euler Operators
- BSP Trees in Euclidean and Spherical Geometries
- Geometry-Free Geometric Computing
- Constructive Solid Geometry
- Visibility from Euclidean to Spherical Spaces
- Visibility in Space
0 komentar:
Posting Komentar