Assignment 2: Curvature
The written portion of Assignment 2 can be found here. It takes a look at the curvature of smooth and discrete surfaces, filling in some of the details from lecture. Note that there are a fair number of exercises here, so it might be wise to split them up over the course of the assignment.
For the coding portion of this assignment, you will implement various expressions for discrete curvatures and surfaces normals that you will derive in the written assignment. (However, the final expressions are given below in case you want to do the coding first.) Once implemented, you will be able to visualize these geometric quantities on a mesh. For simplicity, you may assume that the mesh has no boundary.
Getting Started
Please implement the following routines in core/geometry.[js/cpp]:
- angle
- dihedralAngle
- vertexNormalAngleWeighted
- vertexNormalSphereInscribed
- vertexNormalAreaWeighted
- vertexNormalGaussianCurvature
- vertexNormalMeanCurvature
- angleDefect
- totalAngleDefect
- scalarMeanCurvature
- circumcentricDualArea
- principalCurvatures