----------------- Curvature Circles ----------------- .. image:: curvature_circles1.png :width: 49% .. image:: curvature_circles2.png :width: 49% This example is about curvature circles of a (discrete) plane curve. It illustrates the relationship between the curvature circles of the plane curve and the ones of its counterpart on the **Möbius sphere**, obtained by inverse-stereographic projection of the planar points. The curve in this example is a discrete **cardioid**. The example includes 7 animations: - 1. Showing the discrete **curvature circle** at each point - 2. Showing the discrete **curvature circle** at each point an tracking the **evolute** - 3. Fade in of the **Möbius sphere** (only for smooth animations) - 4. Inverse-steregraphic projection of each vertex to the **Möbius sphere** - 5. Visualizing **spherical circles** as intersections of the sphere with osculating planes (and their **polar points**) - 6. Stereographic projection of the **spherical circles** as well as their **polar points** - 7. Tracking of all the (spherical and planar) objects by iterating through the curve (only for discrete animations) Discrete animation: .. image:: curvature_circles_discrete.gif :width: 80% :align: center Smooth animation: .. image:: curvature_circles_smooth.gif :width: 80% :align: center You can download the full script :download:`curvature_circles.py <../../../../examples/blender/docs/examples/curvature_circles.py>`, or find it, separated in sections, below. .. contents:: :local: :backlinks: none Helper Functions ================ Functions for creation of planar and spherical curvature circles and projections of objects (per index). .. literalinclude:: ../../../../examples/blender/docs/examples/curvature_circles.py :language: python :start-after: [helper-functions] :end-before: [helper-functions] Setup ===== .. literalinclude:: ../../../../examples/blender/docs/examples/curvature_circles.py :language: python :start-after: [setup] :end-before: [setup] Curve and Specified Helper Functions ==================================== Initialize the parameterized curve and create functions specified for this curve. .. literalinclude:: ../../../../examples/blender/docs/examples/curvature_circles.py :language: python :start-after: [curve-and-functions] :end-before: [curve-and-functions] Visualization Setup =================== .. literalinclude:: ../../../../examples/blender/docs/examples/curvature_circles.py :language: python :start-after: [visualization] :end-before: [visualization] Animation Setup and Static Objects ================================== Don't forget to set the output directory and increase the max_samples value. .. literalinclude:: ../../../../examples/blender/docs/examples/curvature_circles.py :language: python :start-after: [animation-1] :end-before: [animation-1] Main Animation Function ======================= .. literalinclude:: ../../../../examples/blender/docs/examples/curvature_circles.py :language: python :start-after: [animation-2] :end-before: [animation-2] Animation Callback and Keyframes ================================ .. literalinclude:: ../../../../examples/blender/docs/examples/curvature_circles.py :language: python :start-after: [animation-3] :end-before: [animation-3] Rendering Setup =============== .. literalinclude:: ../../../../examples/blender/docs/examples/curvature_circles.py :language: python :start-after: [rendering-setup] :end-before: [rendering-setup]