This is as part of Mathematics studying for Graphics and Game development notes (in series).
It can be represented via
Implicit Form
For example,
\[ x^2 + y^2 + z^2 = 1 \]
This equation is true for all points on the surface of a unit sphere centered at the origin.
Parametric Form
For example,
\[ x(t) = \cos 2{\pi}t \] \[ y(t) = \sin 2{\pi}t \]
Straightforward Form
Capture the most important and obvious information directly. For example, line segment, it has 2 endpoints. For a sphere, it has center and radius.
Degrees of Freedom
Each one has its own degrees of freedom. It’s a minimum number of required information to describe such geometric primitive. Often we will find redundant piece of information that we could eliminate i.e. vector having unit length.
For 2D ray can be defined with the following parametric equations
\[ x(t) = x_0 + t{\Delta}x \] \[ y(t) = y_0 + t{\Delta}y \]
Similarly to 3D as we just add another equation for another dimension to it.
To represent it in vector notation,
\[ p(t) = p_0 + td \]
In 2D we can represent line with
\[ ax + by = d \]
Note: Other resource might use another form of (7) as \[ ax + by + d = 0 \] This flips the sign of \(d\).
Alternatively, we can represent above equation with dot product as follows
\[ p \cdot n = d \]
Look closely, above two equations are in similar form of normal line equation as follows
\[ y = mx + b \]
\(m\) is slope and called rise over run.
Notes for (9)
The sphere equation comes from a simple definition of set of all points that are a given distance from the center. Thus it comes down to
\[ {\Vert}p-c{\Vert} = r \]
where \(p\) is any point on the surface of the sphere, \(c\) is the center of the sphere, and \(r\) is the radius.
If we expand the above equation, then we get the form we get used to as follows.
\[ (x-c_x)^2 + (y-c_y)^2 + (z-c_z)^2 = r^2 \]
It’s based on keeping track of minimum and maximum value to represent the axis-aligned bounding box.
\[ P_{min} = [\ x_{min}\ \ y_{min}\ \ z_{min}\ ] \] \[ P_{max} = [\ x_{max}\ \ y_{max}\ \ z_{max}\ ] \]
The center point \(c\) is given by
\[ c = ( P_{min} + P_{max})/2 \]
The size vector \(s\) is the vector from \(P_{min}\) to \(P_{max}\) in turns this contains width, height, and length of the box.
We can get its radius by
\[ \begin{align} r &= P_{min} - c \\ &= s/2 \end{align}\]
\[ ax + by + cz = d \] \[ p \cdot n = d \]
Assume there are two edges. \(e_1\) is \(\overrightarrow {p_{2}p_{3}}\), and \(e_3\) is \(\overrightarrow {p_{2}p_{1}}\) in which those 3 points are in the plane.
\[ e_3 = p_2 - p_1 \] \[ e_1 = p_3 - p_2 \]
Distance from point \(p\) on the plane to point \(q\) closest to it (which is not on the plane) is
\[ \begin{align} p + an &= q \nonumber \\ (p + an) \cdot n &= q \cdot n \nonumber \\ p \cdot n + (an) \cdot n &= q \cdot n \nonumber \\ d + a &= q \cdot n \nonumber \\ a &= q \cdot n -d \end{align}\]
where \(a\) is the amount along \(\vec n\).
Law of sines (see proof)
\[ \frac{\sin{\theta}_1}{l_1} = \frac{\sin{\theta}_2}{l_2} = \frac{\sin{\theta}_3}{l_3} \]
Law of cosines (see proof)
\[ l_1^2 = l_2^2 + l_3^2 - 2l_2l_3\cos\theta_1 \] \[ l_2^2 = l_1^2 + l_3^2 - 2l_1l_3\cos\theta_2 \] \[ l_3^2 = l_1^2 + l_2^2 - 2l_1l_2\cos\theta_3 \]
Perimeter is
\[ p = l_1 + l_2 + l_3 \]
Any point inside a triangle can be expressed as the weighted average of the vertices. The weights are known as barycentric coordinate.
Conversion from barycentric coordinates to 3D position
\[ (b_1, b_2, b_3) \iff b_1v_1 + b_2v_2 + b_3v_3 \]
where \(b_1 + b_2 + b_3 = 1\)
We can interpret it as ratios of areas
\[ b_1 = A(T_1)/A(T) \] \[ b_2 = A(T_2)/A(T) \] \[ b_3 = A(T_3)/A(T) \]
First published on Aug, 4, 2019
Written by Wasin Thonkaew
In case of reprinting, comments, suggestions
or to do anything with the article in which you are unsure of, please
write e-mail to wasin[add]wasin[dot]io
Copyright © 2019-2021 Wasin Thonkaew. All Rights Reserved.