Difference between revisions of "Essential Mathematics for Computational Design"

From Design Computation
Jump to: navigation, search
Line 20: Line 20:
  
 
==Vector representation==
 
==Vector representation==
Position vector
+
===Position vector===
Vectors vs. points
+
===Vectors vs. points===
Vector length
+
===Vector length===
Unit vector
+
===Unit vector===
 
==Vector operations==
 
==Vector operations==
Vector scalar operation
+
===Vector scalar operation===
Vector addition
+
===Vector addition===
Vector subtraction
+
===Vector subtraction===
Vector properties
+
===Vector properties===
Vector dot product
+
===Vector dot product===
Vector dot product, lengths, and angles
+
===Vector dot product, lengths, and angles===
Dot product properties
+
===Dot product properties===
Vector cross product
+
===Vector cross product===
Cross product and angle between vectors
+
===Cross product and angle between vectors===
Cross product properties
+
===Cross product properties===
 
==Vector equation of line==
 
==Vector equation of line==
 
==Vector equation of a plane==
 
==Vector equation of a plane==
 
==Tutorials==
 
==Tutorials==
 
===Face direction===
 
===Face direction===
Input
+
====Input====
Parameters
+
====Parameters====
Solution
+
====Solution====
 
===Exploded box===
 
===Exploded box===
Input
+
====Input====
Parameters
+
====Parameters====
Solution
+
====Solution====
 
===Tangent spheres===
 
===Tangent spheres===
Input
+
====Input====
Parameters
+
====Parameters====
Solution
+
====Solution====
  
 
=Matrices and Transformations=
 
=Matrices and Transformations=
 
==Matrix operations==
 
==Matrix operations==
 
===Matrix multiplication===
 
===Matrix multiplication===
Method 1
+
====Method 1====
Method 2
+
====Method 2====
Identity matrix
+
===Identity matrix===
 
==Transformation operations==
 
==Transformation operations==
 
===Translation (move) transformation===
 
===Translation (move) transformation===
Line 72: Line 72:
 
=Parametric Curves and Surfaces=
 
=Parametric Curves and Surfaces=
 
==Parametric curves==
 
==Parametric curves==
Curve parameter
+
===Curve parameter===
Curve domain or interval
+
===Curve domain or interval===
Curve evaluation
+
===Curve evaluation===
Tangent vector to a curve
+
===Tangent vector to a curve===
Cubic polynomial curves
+
===Cubic polynomial curves===
Evaluating cubic Bézier curves
+
===Evaluating cubic Bézier curves===
 
==NURBS curves==
 
==NURBS curves==
Degree
+
===Degree===
Control points
+
===Control points===
Weights of control points
+
===Weights of control points===
Knots
+
===Knots===
Knots are parameter values
+
===Knots are parameter values===
Knot multiplicity
+
====Knot multiplicity====
Fully-multiple knots
+
====Fully-multiple knots====
Uniform knots
+
====Uniform knots====
Non uniform knots
+
====Non uniform knots====
Evaluation rule
+
===Evaluation rule===
Characteristics of NURBS curves
+
===Characteristics of NURBS curves===
Clamped vs. periodic NURBS curves
+
====Clamped vs. periodic NURBS curves====
Weights
+
====Weights====
Evaluating NURBS curves
+
===Evaluating NURBS curves===
Solution
+
====Solution====
 
==Curve geometric continuity==
 
==Curve geometric continuity==
 
==Curve curvature==
 
==Curve curvature==
Line 107: Line 107:
 
===Mean curvature===
 
===Mean curvature===
 
==NURBS surfaces==
 
==NURBS surfaces==
Characteristics of NURBS surfaces
+
===Characteristics of NURBS surfaces===
Singularity in NURBS surfaces
+
===Singularity in NURBS surfaces===
Trimmed NURBS surfaces
+
===Trimmed NURBS surfaces===
 
==Polysurfaces==
 
==Polysurfaces==
 
==Tutorials==
 
==Tutorials==

Revision as of 00:27, 16 December 2021


Essential Mathematics for Computational Design, by Rajaa Issa (Robert McNeel & Associates), introduces to design professionals the foundation mathematical concepts that are necessary for effective development of computational methods for 3-D modeling and computer graphics. This is not meant to be a complete and comprehensive resource, but rather an overview of the basic and most commonly used concepts.

The material is directed towards designers who have little or no background in mathematics beyond high school. All concepts are explained visually using Grasshopper ® (GH), the generative modeling environment for Rhinoceros ® (Rhino).

The content is divided into three chapters. Chapter 1 discusses vector math including vector representation, vector operation, and line and plane equations. Chapter 2 reviews matrix operations and transformations. Chapter 3 includes an in-depth review of parametric curves with special focus on NURBS curves and the concepts of continuity and curvature. It also reviews NURBS surfaces and polysurfaces.

The author would like to acknowledge the excellent and thorough technical review by Dr. Dale Lear of Robert McNeel & Associates. His valuable comments were instrumental in producing this edition. I would also like to acknowledge Ms. Margaret Becker of Robert McNeel & Associates for reviewing the technical writing and formatting the document.


Contents

Vector Mathematics

A vector indicates a quantity, such as velocity or force, that has direction and length. Vectors in 3D coordinate systems are represented with an ordered set of three real numbers and look like:

v = <a1, a2, a3>

Vector representation

Position vector

Vectors vs. points

Vector length

Unit vector

Vector operations

Vector scalar operation

Vector addition

Vector subtraction

Vector properties

Vector dot product

Vector dot product, lengths, and angles

Dot product properties

Vector cross product

Cross product and angle between vectors

Cross product properties

Vector equation of line

Vector equation of a plane

Tutorials

Face direction

Input

Parameters

Solution

Exploded box

Input

Parameters

Solution

Tangent spheres

Input

Parameters

Solution

Matrices and Transformations

Matrix operations

Matrix multiplication

Method 1

Method 2

Identity matrix

Transformation operations

Translation (move) transformation

Rotation transformation

Scale transformation

Shear transformation

Mirror or reflection transformation

Planar Projection transformation

Tutorial

Multiple transformations

Input

Additional input

Solution

Parametric Curves and Surfaces

Parametric curves

Curve parameter

Curve domain or interval

Curve evaluation

Tangent vector to a curve

Cubic polynomial curves

Evaluating cubic Bézier curves

NURBS curves

Degree

Control points

Weights of control points

Knots

Knots are parameter values

Knot multiplicity

Fully-multiple knots

Uniform knots

Non uniform knots

Evaluation rule

Characteristics of NURBS curves

Clamped vs. periodic NURBS curves

Weights

Evaluating NURBS curves

Solution

Curve geometric continuity

Curve curvature

Parametric surfaces

Surface parameters

Surface domain

Surface evaluation

Tangent plane of a surface

Surface geometric continuity

Surface curvature

Principal curvatures

Gaussian curvature

Mean curvature

NURBS surfaces

Characteristics of NURBS surfaces

Singularity in NURBS surfaces

Trimmed NURBS surfaces

Polysurfaces

Tutorials

Continuity between curves

Input

Parameters

Solution

Surfaces with singularity

Input

Parameters

Solution

References

Edward Angel, "Interactive Computer Graphics with OpenGL,” Addison Wesley Longman, Inc., 2000.

James D Foley, Steven K Feiner, John F Hughes, "Introduction to Computer Graphics" Addison-Wesley Publishing Company, Inc., 1997.

James Stewart, "Calculus," Wadsworth, Inc., 1991.

Kenneth Hoffman, Ray Kunze, “Linear Algebra”, Prentice-Hall, Inc., 1971

Rhinoceros® help document, Robert McNeel and Associates, 2009.