Curve geometry 4
Last updated
Last updated
The next construction covers another fundamental property of curves. Here instead of evaluating a point on a curve plus one forward, we also generate one more trailing behind by same tiny amount i.e. “0.000001”. Now, given three points, we can scribe a unique circle; an approximation of the “circle of curvature”.
Observe that the circle becomes very large when the curve flattens out and very small when the curve bends rapidly. The value “1.0 / radius” of this circle is known as the curvature of the curve at that point. No curvature means infinite radius, which means the three points generated are on the same line, which means that the curve at that point is indeed linear. In the same fashion we can imagine the meaning of the radius being zero implies a super abrupt turn of events, a discontinuity perhaps.
The centre of the circle is called the “centre of curvature” and the direction from the point on the curve to the centre of curvature is known as the “normal” direction. The tangent vector and normal vectors are perpendicular to one another. Due to small approximation error we came close but not exactly to 90 degrees in the animation below. The normal gives us thus a perpendicular direction from any point on the curve, it points towards the centre of curvature and its magnitude contains the curvature inverse i.e. radius of the circle of curvature.
A few new components we can discuss here are the “circle by three points” which is self-explanatory. Nevertheless, it outputs not only a curve itself, but also a plane and a radius of the circle. Circles are planar curves so in 3D we need not only a centre but also their basis plane. A centre and a radius gives us a sphere in 3D not a circle.
We also used the “line sdl” component, which constructs a line using a start-point, a directional vector and a length. The component computes the end-point of the line segment via , where “p” is the supplied origin point, “u” is the supplied direction vector, “s” is the supplied length and “q” is the computed end-point.
Practice
We used a geometric construction to develop the concept of curvature but as the tangent is a differential notion representing the first derivative, curvature is also captured by the second derivative of curves. If you are mathematically inclined derive the curvature vector using calculus, e.g. for cubic polynomial, and prove that the tangent and normal vectors are square.
Normals are super useful geometrically because the allow us to generate offset curves. Offsets are in a sense parallel or equidistant from a base curve. Use the series construction to produce offset curves and experiment with the “offset curve” command for comparing the results.
Compute the curvature for each point on a more complex curve. Consider why the circle some times flips sides and what is so special about the points that this reversal takes place.
This is the last segment of abstract concepts pertaining vector linear algebra and differential geometry of curves. Here we just compute a coordinate system based on the point, tangent and normal vectors. This is trivially done using the cross product between the two vectors already computed. This new vector is known as the bi-normal of the curve at the point. In as much curvature encodes how a curve bends, the bi-normal gives a sense of twisting as we move about a curve.
Practice
For the mathematically inclined, discover the relationship between the bi-normal and the derivatives of curve. It must be almost self-evident by now.
We wish to design a ramp along a curved path, using the properties of curves, draw a sequence of lines that follow the curve while simultaneously being horizontal (so that people can walk without sliding laterally like a roller coaster).
In computer graphics we often put a virtual camera along a curved path and render animations. However, if we use the Frenet frame the camera tends to spin around the axis of motion ie. the tangent vector, which makes the viewers nauseating. Produce a sequence of coordinate systems that do not spin.
In this segment we looked at core concepts related to both computation, i.e. list operations, as well as geometry, i.e. differential geometry of curves. You may implement the practice questions as means of getting accustomed to those ideas and build confidence. In the next segment we will employ some of those to construct a relatively complex parametric model and appreciate the benefits of this way of working. Additional optional study content on curves are available for the curious [>].
The graph below builds upon the previous to compute what is known as a Frenet-Serret Frame [] or in a sense a natural coordinate system at a point on a curve. To fully define a coordinate systems we need one origin and three basis vectors. Here we have the bonus of all those vectors also being orthogonal to one another.