# Geometry for Programmers Reading Index ## Metadata **Status**:: #x **Kind**:: #reading-index **Zettel**:: #zettel/fleeting **Created**:: [[2024-03-15]] **Topic**:: [[♯ Graphics Programming]] **Highlights**:: [[Oleksandr Kaleniuk - Geometry for Programmers (Highlights)]] ## Terminology - Line, Point, Vector, Vertex, Triangle, Matrix - Degenerate triangles - Functions - Geometry Transformation - Vector Field - Scalar Field (see also [[#Signed Distance Function & Surrogates]]) - Algebra and Isomorphic - (**supports**:: [[RareSkills Authors - Elementary Group Theory for Programmers (Highlights)#^692141487]]) ## Transformations - Gaussian elimination & LU-decomposition - Homogeneous coordinates - Extend one extra dimension as the common denominator. - Denominator indicates an infinity point. - Cofactor matrix and inverse matrix. ## Calculus - Derivative - `diff` in `sympy` - Curvature - Practice: biarc curve ## Polynomial Approximation - Polynomial approximation - Least squares method - [Polynomial Regression](https://visualize-it.github.io/polynomial_regression/simulation.html) - Maclaurin series - Approximate a function by computing derivatives at 0 - $\displaystyle y = \frac{y'''(0)}{3!}x^3+\frac{y''(0)}{2!}x^2+\frac{y'(0)}{1!}x+y(0)$ - Taylor series, derivatives not at 0 - SymPy: `series(E**x, x, x0 = 0, n = 6)` - Vandermonde system - Lagrange interpolation - $L(x) = \sum{y_ig_i(x)}$ - where $g_i(x) = 1$ when $x = x_i$, and = 0 when $x = x_j$ where $j \neq i$. - so $\displaystyle g_i(x) = \prod_{j=1,j \neq i}^N\frac{x - x_j}{x_i - x_j}$ ## Spines Functions split into sections, each section is a simple function. - Bézier - NURBS ## Nonlinear Transformations ## Vector Algebra ## Signed Distance Function & Surrogates ## Boundary Representations & Triangle Meshes - [x] Exercise: Smooth contouring ## Image & Voxels ## Actions - Summarize sympy tutorials