10.014 CTD
  • Overview
  • Schedule
  • Administrative
    • Accessing Rhino remotely
    • Rhino for Mac
  • ASSIGNMENTS
    • Dates and rubrics
    • Generative design
      • Generative design
    • Parametric design
      • Parametric design
    • Simulated design
      • Simulated design
      • Simulated design
  • SESSION 1B
    • Computer Aided Design
    • Ranges and expressions 1
      • Ranges and expressions 2
      • Ranges and expressions 3
      • Ranges and expressions 4
      • Ranges and expressions 5
      • Ranges and expressions 6
  • SESSION 2A
    • Visual programming 1
      • Visual programming 2
      • Visual programming 3
      • Visual programming 4
    • Associative modelling 1
      • Associative modelling 2
      • Associative modelling 3
  • SESSION 2B
    • Logical Patterns 1
      • Logical patterns 2
      • Logical patterns 3
  • SESSION 3A
    • Spatial geometry 1
      • Spatial geometry 2
      • Spatial geometry 3
      • Spatial geometry 4
      • Spatial geometry 5
      • Spatial geometry 6
      • Spatial geometry 7
    • Curve geometry 1
      • Curve geometry 2
      • Curve geometry 3
      • Curve geometry 4
  • SESSION 3B
    • Surface geometry
    • Parametric modelling 1
      • Parametric modelling 2
      • Parametric modelling 3
      • Parametric modelling 4
  • SESSION 4A
    • Information nesting 1
      • Information nesting 2
      • Information nesting 3
    • Data landscapes 1
      • Data landscapes 2
      • Data Landscapes 3
      • Data landscapes 4
  • SESSION 4B
    • Mesh geometry 1
      • Mesh geometry 2
      • Mesh geometry 3
  • SESSION 5A
    • Space and time 1
      • Space and time 2
    • Modelling entities 1
      • Modelling entities 2
      • Modelling entities 3
  • SESSION 5B
    • Multibody dynamics 1
      • Multibody dynamics 2
    • Material elasticity 1
      • Material elasticity 2
      • Material elasticity 3
  • SESSION 6A
    • Form-finding 1
      • Form-finding 2
      • Form-finding 3
      • Form-finding 4
  • SESSION 6B
    • AI Image generation 1
      • AI Image generation 2
      • AI Image generation 3
  • APPENDIX
    • Spirograph 1
      • Spirograph 2
    • Curves
    • Swarm Intelligence 1
      • Swarm Intelligence 2
    • Hybrid programming 1
      • Hybrid programming 2
Powered by GitBook
On this page
  • The Arc-Length of a Curve
  • Tangents along Curves
  1. SESSION 3A
  2. Curve geometry 1

Curve geometry 3

PreviousCurve geometry 2NextCurve geometry 4

Last updated 8 months ago

The Arc-Length of a Curve

Lets try to compute an approximation of the length travelled along curve, or more formally the curve’s arc-length, using techniques we have developed. First we will divide a curve into a number of points, then we will compute distances among consecutive points and finally sum up all partial distances. Note that for simplicity here we will use a “periodic” curve i.e. a closed loop, but the approach is general.

We use here some new components including “mass summation”, which just adds up all elements of a list; and the “shift list” component which cycles forward or backward a list’s elements by a number of positions. In this scenario, we use the component’s default behaviour which is to shift the first element of the input list to the end i.e. cycle backward by one position.

The reason for performing this shift is to create pairs of consecutive points such that we can supply them to the “point distance” component. The concept of reorganizing items of a sequence for the sake of performing an operation that expects data is a certain order/format is very common and we will see more of in future segments.

Practice

  • A simpler graph to arc-length approximation is to just produce a polyline between consecutive points and sum the linear segments’ lengths. Try to develop this approach. Hint: use the “explode” curve and the “end points” components.

  • You may also generate the list of partial distances using the “list item” component outputting pairs of consecutive points. Which of all those approaches explored seems computationally the most efficient?

  • Experiment with various geometric shapes and the number of points required for approximating the arc-length up to 5 decimal places. Use the curve “length” component as benchmark. Would an infinite number of points exactly equal the actual arc-length of a, as-in any, curve?

Tangents along Curves

Next we explore some geometric properties of curves. A first property of interest is the tangent to a curve. A curve’s tangent is evaluated not unlike a point at parameter along the curve. Together, the point and tangent vector, describe a line that best fits the curve in a local sense. This is often expressed as a line that touches the curve at a particular point. Below we construct the tangent vector at a point of a curve from first principles for illustration purposes as the “evaluate curve” component already computes the tangent vector.

From the animation we observe that when this forward distance is large, the line intersects the curve producing what is known as a “secant”. But as we the parameter spacing becomes smaller we begin approximating the curve’s tangent at that point. The construction thus presents a way of computing the first derivative of curve at a parameter which geometrically represents its tangent vector.

The animation above demonstrates applying the same operation multiple times. Here instead of normalizing the series using numerous component nodes as seen earlier, we insert the expression 1.0 / ( x – 1 ) directly into the step parameter to cut down on verbosity.

Practice

  • Experiment with generating points along the tangents for a number of points along a curve. Draw curves from the generated points and interpolate new curves. Is the tangent image of a curve a translation?

  • The magnitude of the tangent vector captures the speed of a point moving along the curve. Plot the this speed value against the parameter “t” to visualize the speed profile. Btw. Newton came up with calculus exactly for tracking the motion of objects.

  • Create a graphical calculator model for plotting a curve, use the “expression” component, and also plot along its first derivative curve. Maybe this will be useful for your math course?

Look up in Wikipedia the topic of a curve’s arc-length []. Consider how the operations we performed are related to the definite integral of a curve’s first derivative vector magnitudes.

Here we compute a point at “t” i.e. p = curve(t)and a point slightly ahead of the previous, say at “t + 0.001” i.e. q = curve( t + 0.001 ). By subtracting the two points we produce a vector u=q−pu = q - pu=q−p . We scale the vector produced by the difference of parameters used “0.001” thus we produce v=u/0.001v = u / 0.001v=u/0.001. Finally, we translate the original point “p” using the vector vvv, to produce a new point which we draw a line connecting it to “p”.

The first derivative is symbolically expressed as f(t)f(t)f(t) or dfft\dfrac{df}{ft}ftdf​.

It is the limit of the expression (f(t+dt)–f(t))/dt( f( t + dt ) – f( t ) ) / dt(f(t+dt)–f(t))/dt as dtdtdt approaches zero. Here we just skipped the approaching part and used a small enough number. This is also known as numerical differentiation or specifically forward finite differences scheme [].

>
>
Drawing