计算机图形学几何工具算法详解(英文目录)

转载 2007年10月15日 22:45:00
 

计算机图形学几何工具算法详解(英文目录)

 www.mkp.com/gtcg
Geometric Tools for Computer Graphics
Philip Schneider
Industrial Light + Magic, San Francisco, California, U.S.A.
David H. Eberly
Geometric Tools, Inc., Chapel Hill, North Carolina, U.S.A.

Features & Benefits

 


 

  • Filled with robust, thoroughly tested solutions that will save you time and help you avoid costly errors.
  • Covers problems relevant for both 2D and 3D graphics programming.
  • Presents each problem and solution in stand-alone form allowing you the option of reading only those entries that matter to you.
  • Provides the math and geometry background you need to understand the solutions and put them to work.
  • Clearly diagrams each problem and presents solutions in easy-to-understand pseudocode.
  • Resources associated with the book are available at the companion Web site www.mkp.com/gtcg.

 

Reviews

 

"An hour of a programmer's time often costs more than the price of a book. By this measure, you hold a volume potentially worth thousands of dollars. That it can be purchased for a fraction of this cost I consider a modern miracle. The amount of information crammed into this book is incredible." --Eric Haines

Description

 back to top

 


Do you spend too much time creating the building blocks of your graphics applications or finding and correcting errors? Geometric Tools for Computer Graphics is an extensive, conveniently organized collection of proven solutions to fundamental problems that you'd rather not solve over and over again, including building primitives, distance calculation, approximation, containment, decomposition, intersection determination, separation, and more.


If you have a mathematics degree, this book will save you time and trouble. If you don't, it will help you achieve things you may feel are out of your reach. Inside, each problem is clearly stated and diagrammed, and the fully detailed solutions are presented in easy-to-understand pseudocode. You also get the mathematics and geometry background needed to make optimal use of the solutions, as well as an abundance of reference material contained in a series of appendices.

Contents

 back to top

Foreword
Figures
Tables
Preface

Chapter 1 Introduction
1.1 How to Use This Book
1.2 Issues of Numerical Computation
1.2.1 Low-Level Issues
1.2.2 High-Level Issues
1.3 A Summary of the Chapters

Chapter 2 Matrices and Linear Systems
2.1 Introduction
2.1.1 Motivation
2.1.2 Organization
2.1.3 Notational Conventions
2.2 Tuples
2.2.1 Definition
2.2.2 Arithmetic Operations
2.3 Matrices
2.3.1 Notation and Terminology
2.3.2 Transposition
2.3.3 Arithmetic Operations
2.3.4 Matrix Multiplication
2.4 Linear Systems
2.4.1 Linear Equations
2.4.2 Linear Systems in Two Unknowns
2.4.3 General Linear Systems
2.4.4 Row Reductions, Echelon Form, and Rank
2.5 Square Matrices
2.5.1 Diagonal Matrices
2.5.2 Triangular Matrices
2.5.3 The Determinant
2.5.4 Inverse
2.6 Linear Spaces
2.6.1 Fields
2.6.2 Definition and Properties
2.6.3 Subspaces
2.6.4 Linear Combinations and Span
2.6.5 Linear Independence, Dimension, and Basis
2.7 Linear Mappings
2.7.1 Mappings in General
2.7.2 Linear Mappings
2.7.3 Matrix Representation of Linear Mappings
2.7.4 Cramer’s Rule
2.8 Eigenvalues and Eigenvectors
2.9 Euclidean Space
2.9.1 Inner Product Spaces
2.9.2 Orthogonality and Orthonormal Sets
2.10 Least Squares
Recommended Reading

Chapter 3 Vector Algebra
3.1 Vector Basics
3.1.1 Vector Equivalence
3.1.2 Vector Addition
3.1.3 Vector Subtraction
3.1.4 Vector Scaling
3.1.5 Properties of Vector Addition and Scalar Multiplication
3.2 Vector Space
3.2.1 Span
3.2.2 Linear Independence
3.2.3 Basis, Subspaces, and Dimension
3.2.4 Orientation
3.2.5 Change of Basis
3.2.6 Linear Transformations
3.3 Affine Spaces
3.3.1 Euclidean Geometry
3.3.2 Volume, the Determinant, and the Scalar Triple Product
3.3.3 Frames
3.4 Affine Transformations
3.4.1 Types of Affine Maps
3.4.2 Composition of Affine Maps
3.5 Barycentric Coordinates and Simplexes
3.5.1 Barycentric Coordinates and Subspaces
3.5.2 Affine Independence

Chapter 4 Matrices, Vector Algebra, and Transformations
4.1 Introduction
4.2 Matrix Representation of Points and Vectors
4.3 Addition, Subtraction, and Multiplication
4.3.1 Vector Addition and Subtraction
4.3.2 Point and Vector Addition and Subtraction
4.3.3 Subtraction of Points
4.3.4 Scalar Multiplication
4.4 Products of Vectors
4.4.1 Dot Product
4.4.2 Cross Product
4.4.3 Tensor Product
4.4.4 The “Perp” Operator and the “Perp” Dot Product
4.5 Matrix Representation of Affine Transformations
4.6 Change-of-Basis/Frame/Coordinate System
4.7 Vector Geometry of Affine Transformations
4.7.1 Notation
4.7.2 Translation
4.7.3 Rotation
4.7.4 Scaling
4.7.5 Reflection
4.7.6 Shearing
4.8 Projections
4.8.1 Orthographic
4.8.2 Oblique
4.8.3 Perspective
4.9 Transforming Normal Vectors
Recommended Reading

Chapter 5 Geometric Primitives in 2D
5.1 Linear Components
5.1.1 Implicit Form
5.1.2 Parametric Form
5.1.3 Converting between Representations
5.2 Triangles
5.3 Rectangles
5.4 Polylines and Polygons
5.5 Quadratic Curves
5.5.1 Circles
5.5.2 Ellipses
5.6 Polynomial Curves
5.6.1 B´ezier Curves
5.6.2 B-Spline Curves
5.6.3 NURBS Curves

Chapter 6 Distance in 2D
6.1 Point to Linear Component
6.1.1 Point to Line
6.1.2 Point to Ray
6.1.3 Point to Segment
6.2 Point to Polyline
6.3 Point to Polygon
6.3.1 Point to Triangle
6.3.2 Point to Rectangle
6.3.3 Point to Orthogonal Frustum
6.3.4 Point to Convex Polygon
6.4 Point to Quadratic Curve
6.5 Point to Polynomial Curve
6.6 Linear Components
6.6.1 Line to Line
6.6.2 Line to Ray
6.6.3 Line to Segment
6.6.4 Ray to Ray
6.6.5 Ray to Segment
6.6.6 Segment to Segment
6.7 Linear Component to Polyline or Polygon
6.8 Linear Component to Quadratic Curve
6.9 Linear Component to Polynomial Curve
6.10 GJK Algorithm
6.10.1 Set Operations
6.10.2 Overview of the Algorithm
6.10.3 Alternatives to GJK

Chapter 7 Intersection in 2D
7.1 Linear Components
7.2 Linear Components and Polylines
7.3 Linear Components and Quadratic Curves
7.3.1 Linear Components and General Quadratic Curves
7.3.2 Linear Components and Circular Components
7.4 Linear Components and Polynomial Curves
7.4.1 Algebraic Method
7.4.2 Polyline Approximation
7.4.3 Hierarchical Bounding
7.4.4 Monotone Decomposition
7.4.5 Rasterization
7.5 Quadratic Curves
7.5.1 General Quadratic Curves
7.5.2 Circular Components
7.5.3 Ellipses
7.6 Polynomial Curves
7.6.1 Algebraic Method
7.6.2 Polyline Approximation
7.6.3 Hierarchical Bounding
7.6.4 Rasterization
7.7 The Method of Separating Axes
7.7.1 Separation by Projection onto a Line
7.7.2 Separation of Stationary Convex Polygons
7.7.3 Separation of Moving Convex Polygons
7.7.4 Intersection Set for Stationary Convex Polygons
7.7.5 Contact Set for Moving Convex Polygons

Chapter 8 Miscellaneous 2D Problems
8.1 Circle through Three Points
8.2 Circle Tangent to Three Lines
8.3 Line Tangent to a Circle at a Given Point
8.4 Line Tangent to a Circle through a Given Point
8.5 Lines Tangent to Two Circles
8.6 Circle through Two Points with a Given Radius
8.7 Circle through a Point and Tangent to a Line with a Given Radius
8.8 Circles Tangent to Two Lines with a Given Radius
8.9 Circles through a Point and Tangent to a Circle with a Given Radius
8.10 Circles Tangent to a Line and a Circle with a Given Radius
8.11 Circles Tangent to Two Circles with a Given Radius
8.12 Line Perpendicular to a Given Line through a Given Point
8.13 Line between and Equidistant to Two Points
8.14 Line Parallel to a Given Line at a Given Distance
8.15 Line Parallel to a Given Line at a Given Vertical (Horizontal) Distance
8.16 Lines Tangent to a Given Circle and Normal to a Given Line

Chapter 9 Geometric Primitives in 3D
9.1 Linear Components
9.2 Planar Components
9.2.1 Planes
9.2.2 Coordinate System Relative to a Plane
9.2.3 2D Objects in a Plane
9.3 Polymeshes, Polyhedra, and Polytopes
9.3.1 Vertex-Edge-Face Tables
9.3.2 Connected Meshes
9.3.3 Manifold Meshes
9.3.4 Closed Meshes
9.3.5 Consistent Ordering
9.3.6 Platonic Solids
9.4 Quadric Surfaces
9.4.1 Three Nonzero Eigenvalues
9.4.2 Two Nonzero Eigenvalues
9.4.3 One Nonzero Eigenvalue
9.5 Torus
9.6 Polynomial Curves
9.6.1 Bézier Curves
9.6.2 B-Spline Curves
9.6.3 NURBS Curves
9.7 Polynomial Surfaces
9.7.1 Bézier Surfaces
9.7.2 B-Spline Surfaces
9.7.3 NURBS Surfaces

Chapter 10 Distance in 3D
10.1 Introduction
10.2 Point to Linear Component
10.2.1 Point to Ray or Line Segment
10.2.2 Point to Polyline
10.3 Point to Planar Component
10.3.1 Point to Plane
10.3.2 Point to Triangle
10.3.3 Point to Rectangle
10.3.4 Point to Polygon
10.3.5 Point to Circle or Disk
10.4 Point to Polyhedron
10.4.1 General Problem
10.4.2 Point to Oriented Bounding Box
10.4.3 Point to Orthogonal Frustum
10.5 Point to Quadric Surface
10.5.1 Point to General Quadric Surface
10.5.2 Point to Ellipsoid
10.6 Point to Polynomial Curve
10.7 Point to Polynomial Surface
10.8 Linear Components
10.8.1 Lines and Lines
10.8.2 Segment/Segment, Line/Ray, Line/Segment, Ray/Ray, Ray/Segment
10.8.3 Segment to Segment, Alternative Approach
10.9 Linear Component to Triangle, Rectangle, Tetrahedron, Oriented Box
10.9.1 Linear Component to Triangle
10.9.2 Linear Component to Rectangle
10.9.3 Linear Component to Tetrahedron
10.9.4 Linear Component to Oriented Bounding Box
10.10 Line to Quadric Surface
10.11 Line to Polynomial Surface
10.12 GJK Algorithm
10.13 Miscellaneous
10.13.1 Distance between Line and Planar Curve
10.13.2 Distance between Line and Planar Solid Object
10.13.3 Distance between Planar Curves
10.13.4 Geodesic Distance on Surfaces

Chapter 11 Intersection in 3D
11.1 Linear Components and Planar Components
11.1.1 Linear Components and Planes
11.1.2 Linear Components and Triangles
11.1.3 Linear Components and Polygons
11.1.4 Linear Component and Disk
11.2 Linear Components and Polyhedra
11.3 Linear Components and Quadric Surfaces
11.3.1 General Quadric Surfaces
11.3.2 Linear Components and a Sphere
11.3.3 Linear Components and an Ellipsoid
11.3.4 Linear Components and Cylinders
11.3.5 Linear Components and a Cone
11.4 Linear Components and Polynomial Surfaces
11.4.1 Algebraic Surfaces
11.4.2 Free-Form Surfaces
11.5 Planar Components
11.5.1 Two Planes
11.5.2 Three Planes
11.5.3 Triangle and Plane
11.5.4 Triangle and Triangle
11.6 Planar Components and Polyhedra
11.6.1 Trimeshes
11.6.2 General Polyhedra
11.7 Planar Components and Quadric Surface
11.7.1 Plane and General Quadric Surface
11.7.2 Plane and Sphere
11.7.3 Plane and Cylinder
11.7.4 Plane and Cone
11.7.5 Triangle and Cone
11.8 Planar Components and Polynomial Surfaces
11.8.1 Hermite Curves
11.8.2 Geometry Definitions
11.8.3 Computing the Curves
11.8.4 The Algorithm
11.8.5 Implementation Notes
11.9 Quadric Surfaces
11.9.1 General Intersection
11.9.2 Ellipsoids
11.10 Polynomial Surfaces
11.10.1 Subdivision Methods
11.10.2 Lattice Evaluation
11.10.3 Analytic Methods
11.10.4 Marching Methods
11.11 The Method of Separating Axes
11.11.1 Separation of Stationary Convex Polyhedra
11.11.2 Separation of Moving Convex Polyhedra
11.11.3 Intersection Set for Stationary Convex Polyhedra
11.11.4 Contact Set for Moving Convex Polyhedra
11.12 Miscellaneous
11.12.1 Oriented Bounding Box and Orthogonal Frustum
11.12.2 Linear Component and Axis-Aligned Bounding Box
11.12.3 Linear Component and Oriented Bounding Box
11.12.4 Plane and Axis-Aligned Bounding Box
11.12.5 Plane and Oriented Bounding Box
11.12.6 Axis-Aligned Bounding Boxes
11.12.7 Oriented Bounding Boxes
11.12.8 Sphere and Axis-Aligned Bounding Box
11.12.9 Cylinders
11.12.10 Linear Component and Torus

Chapter 12 Miscellaneous 3D Problems
12.1 Projection of a Point onto a Plane
12.2 Projection of a Vector onto a Plane
12.3 Angle between a Line and a Plane
12.4 Angle between Two Planes
12.5 Plane Normal to a Line and through a Given Point
12.6 Plane through Three Points
12.7 Angle between Two Lines

Chapter 13 Computational Geometry Topics
13.1 Binary Space-Partitioning Trees in 2D
13.1.1 BSP Tree Representation of a Polygon
13.1.2 Minimum Splits versus Balanced Trees
13.1.3 Point in Polygon Using BSP Trees
13.1.4 Partitioning a Line Segment by a BSP Tree
13.2 Binary Space-Partitioning Trees in 3D
13.2.1 BSP Tree Representation of a Polyhedron
13.2.2 Minimum Splits versus Balanced Trees
13.2.3 Point in Polyhedron Using BSP Trees
13.2.4 Partitioning a Line Segment by a BSP Tree
13.2.5 Partitioning a Convex Polygon by a BSP Tree
13.3 Point in Polygon
13.3.1 Point in Triangle
13.3.2 Point in Convex Polygon
13.3.3 Point in General Polygon
13.3.4 Faster Point in General Polygon
13.3.5 A Grid Method
13.4 Point in Polyhedron
13.4.1 Point in Tetrahedron
13.4.2 Point in Convex Polyhedron
13.4.3 Point in General Polyhedron
13.5 Boolean Operations on Polygons
13.5.1 The Abstract Operations
13.5.2 The Two Primitive Operations
13.5.3 Boolean Operations Using BSP Trees
13.5.4 Other Algorithms
13.6 Boolean Operations on Polyhedra
13.6.1 Abstract Operations
13.6.2 Boolean Operations Using BSP Trees
13.7 Convex Hulls
13.7.1 Convex Hulls in 2D
13.7.2 Convex Hulls in 3D
13.7.3 Convex Hulls in Higher Dimensions
13.8 Delaunay Triangulation
13.8.1 Incremental Construction in 2D
13.8.2 Incremental Construction in General Dimensions
13.8.3 Construction by Convex Hull
13.9 Polygon Partitioning
13.9.1 Visibility Graph of a Simple Polygon
13.9.2 Triangulation
13.9.3 Triangulation by Horizontal Decomposition
13.9.4 Convex Partitioning
13.10 Circumscribed and Inscribed Balls
13.10.1 Circumscribed Ball
13.10.2 Inscribed Ball
13.11 Minimum Bounds for Point Set
13.11.1 Minimum-Area Rectangle
13.11.2 Minimum-Volume Box
13.11.3 Minimum-Area Circle
13.11.4 Minimum-Volume Sphere
13.11.5 Miscellaneous
13.12 Area and Volume Measurements
13.12.1 Area of a 2D Polygon
13.12.2 Area of a 3D Polygon
13.12.3 Volume of a Polyhedron

Appendix A Numerical Methods
A.1 Solving Linear Systems
A.1.1 Special Case: Solving a Triangular System
A.1.2 Gaussian Elimination
A.2 Systems of Polynomials
A.2.1 Linear Equations in One Formal Variable
A.2.2 Any-Degree Equations in One Formal Variable
A.2.3 Any-Degree Equations in Any Formal Variables
A.3 Matrix Decompositions
A.3.1 Euler Angle Factorization
A.3.2 QR Decomposition
A.3.3 Eigendecomposition
A.3.4 Polar Decomposition
A.3.5 Singular Value Decomposition
A.4 Representations of 3D Rotations
A.4.1 Matrix Representation
A.4.2 Axis-Angle Representation
A.4.3 Quaternion Representation
A.4.4 Performance Issues
A.5 Root Finding
A.5.1 Methods in One Dimension
A.5.2 Methods in Many Dimensions
A.5.3 Stable Solution to Quadratic Equations
A.6 Minimization
A.6.1 Methods in One Dimension
A.6.2 Methods in Many Dimensions
A.6.3 Minimizing a Quadratic Form
A.6.4 Minimizing a Restricted Quadratic Form
A.7 Least Squares Fitting
A.7.1 Linear Fitting of Points (x, f (x))
A.7.2 Linear Fitting of Points Using Orthogonal Regression
A.7.3 Planar Fitting of Points (x, y, f (x, y))
A.7.4 Hyperplanar Fitting of Points Using Orthogonal Regression
A.7.5 Fitting a Circle to 2D Points
A.7.6 Fitting a Sphere to 3D Points
A.7.7 Fitting a Quadratic Curve to 2D Points
A.7.8 Fitting a Quadric Surface to 3D Points
A.8 Subdivision of Curves
A.8.1 Subdivision by Uniform Sampling
A.8.2 Subdivision by Arc Length
A.8.3 Subdivision by Midpoint Distance
A.8.4 Subdivision by Variation
A.9 Topics from Calculus
A.9.1 Level Sets
A.9.2 Minima and Maxima of Functions
A.9.3 Lagrange Multipliers

Appendix B Trigonometry
B.1 Introduction
B.1.1 Terminology
B.1.2 Angles
B.1.3 Conversion Examples
B.2 Trigonometric Functions
B.2.1 Definitions in Terms of Exponentials
B.2.2 Domains and Ranges
B.2.3 Graphs of Trigonometric Functions
B.2.4 Derivatives of Trigonometric Functions
B.2.5 Integration
B.3 Trigonometric Identities and Laws
B.3.1 Periodicity
B.3.2 Laws
B.3.3 Formulas
B.4 Inverse Trigonometric Functions
B.4.1 Defining arcsin and arccos in Terms of arctan
B.4.2 Domains and Ranges
B.4.3 Graphs
B.4.4 Derivatives
B.4.5 Integration
B.5 Further Reading

Appendix C Basic Formulas for Geometric Primitives
C.1 Introduction
C.2 Triangles
C.2.1 Symbols
C.2.2 Definitions
C.2.3 Right Triangles
C.2.4 Equilateral Triangle
C.2.5 General Triangle
C.3 Quadrilaterals
C.3.1 Square
C.3.2 Rectangle
C.3.3 Parallelogram
C.3.4 Rhombus
C.3.5 Trapezoid
C.3.6 General Quadrilateral
C.4 Circles
C.4.1 Symbols
C.4.2 Full Circle
C.4.3 Sector of a Circle
C.4.4 Segment of a Circle
C.5 Polyhedra
C.5.1 Symbols
C.5.2 Box
C.5.3 Prism
C.5.4 Pyramid
C.6 Cylinder
C.7 Cone
C.8 Spheres
C.8.1 Segments
C.8.2 Sector
C.9 Torus

References
Index
About the Authors

计算机图形学(四)_几何变换_1_基本的二维几何变换(三)_缩放

改变一个对象的大小,可使用缩放(scaling)变换。一个简单的二维缩放操作可通过将缩放系数(scaling factor)Sx 和 Sy与对象坐标位置(x, y)相乘而得: 在缩放公式中...
  • heyuchang666
  • heyuchang666
  • 2017年03月09日 18:34
  • 1789

计算机图形学

学习总结 本学期通过对计算机图形学课程的学习,了解到了许多有关图形学以及现代计算机行业的迅速发展给人类带来的巨大影响。与此同时,理论课与实验课的结合,更让我们从中真正学到了实用技能,对简单图形、动画...
  • u012679583
  • u012679583
  • 2014年12月16日 13:32
  • 828

计算机图形学(四)_几何变换_1_基本的二维几何变换(二)_旋转

类似于平移,旋转是一种不变形地移动对象的刚体变换,对象上的所有点旋转相同的角度。线段的旋转可以通过将旋转方程5用于每个线段端点,并重新绘制新端点间的线段而得到。多边形的旋转则是将每个顶点旋转指定的旋转...
  • heyuchang666
  • heyuchang666
  • 2017年03月03日 16:46
  • 2192

计算机图形学基础-三维变换

变换是计算机图形学中重要概念,包括最基本的三维变换,即几何变换、投影变换、裁剪变换、视口变换。 1.从三维空间到二维平面      1.1 相机模拟  在真实世界里,所有的物体都...
  • gelu1231
  • gelu1231
  • 2016年07月29日 12:05
  • 1447

图解计算机图形学三维变换算法

工程下载 http://pan.baidu.com/s/1o7OEMc6 tcddd.rar 此处为在Windows下运行的TC图形程序;使用了EasyX库; EasyX库可参考:...
  • bcbobo21cn
  • bcbobo21cn
  • 2016年05月06日 18:21
  • 3138

计算几何与图形学有关的几种常用算法(二)

原文地址:http://blog.csdn.net/orbit/article/details/7101869 3.6 用矢量的叉积判断直线段是否有交             ...
  • puppet_master
  • puppet_master
  • 2015年11月04日 13:40
  • 1455

计算几何与图形学有关的几种常用算法

整理后转载。转载自:http://blog.csdn.net/orbit/article/details/7082678 向大神致敬!
  • Kiritow
  • Kiritow
  • 2016年07月10日 18:52
  • 2816

计算机图形学基础知识-三维变换

原文: http://blog.sina.com.cn/s/blog_557d254601017gvz.html 变换是计算机图形学中重要概念,包括最基本的三维变换,即几何变换、投影变换、裁...
  • xi_niuniu
  • xi_niuniu
  • 2016年01月04日 22:06
  • 1273

计算机图形学常用算法

我的专业是计算机辅助设计(CAD),算是一半机械一半软件,《计算机图形学》是必修课,也是我最喜欢的课程。热衷于用代码摆平一切的我几乎将这本教科书上的每种算法都实现了一遍,这种重复劳动虽然意义不大,但是...
  • lltaoyy
  • lltaoyy
  • 2016年06月07日 17:13
  • 2986

计算机图形学(四)几何变换_5_三维空间的几何变换_1_三维平移

在三维空间中,对象的平移通过平移定义该对象的各个点然后在新位置重建该对象而实现。对于由一组多边形表面表示的对象,可以将各个表面的顶点进行平移如下图,然后重新显示新位置的面。...
  • heyuchang666
  • heyuchang666
  • 2017年06月30日 16:14
  • 759
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:计算机图形学几何工具算法详解(英文目录)
举报原因:
原因补充:

(最多只允许输入30个字)