What is the equation of a helix parametrized by arc length (i.e. a function of arc length) between any two points in space? Is there any function for this ? How do i implement the same using matlab or mathematica ?
views:
1734answers:
2To find the arc length parameterization of the helix defined by
r(t) = cos t i + sin t j + t k
Arc Length = s = Integral(a,b){sqrt((dx/dt)^2 + (dy/dt)^2 + (dz/dt)^2) dt}
First find the arc length function
s(t) = Integral(0,t) { sqrt((sin u)^2 + (cos u)^2 + 1) du }
= Integral(0,t) { sqrt(2) du } = sqrt(2) * t
Solving for t gives
t = s / sqrt(2)
Now substitute back to get
r(s) = cos(s / sqrt(2)) i + sin(s / sqrt(2)) j + (s / sqrt(2)) k
I'll leave the last bit to you!
just to add to Mitch Wheat's answer, helices are not unique; for a given axis, the degrees of freedom are distance between turns, radius, and phase (P
, A
, and phi
below)
if you generalize to
w = 2*pi/P
r(t) = (A cos (wt-phi)) i + (A sin (wt-phi)) j + (t) k
then one way to analyze the arclength as a function of t (without having to compute the arclength integral explicitly) is to realize that the magnitude of velocity is constant; the component of velocity parallel to the radius is 0, the component of velocity parallel to the axis is 1
, the component of velocity perpendicular to both radius and axis is Aw
, so therefore the magnitude of velocity is speed = sqrt(1 + A2w2), => arclength s = sqrt(1 + A2w2)t
You'd need some way of defining the axis, P
, A
and phi
as a function of whatever inputs you are given. Just the endpoints and arclength wouldn't be enough.