Frenet

FRENET - Frenet-Serret Space Curve Invarients
5K Downloads
Updated 1 Jun 2006

No License

FRENET - Frenet-Serret Space Curve Invarients

[T,N,B,k,t] = frenet(x,y);
[T,N,B,k,t] = frenet(x,y,z);

Returns the 3 vector and 2 scaler
invarients of a space curve defined
by vectors x,y and z. If z is omitted
then the curve is only a 2D,
but the equations are still valid.

_ r'
T = ---- (Tangent)
|r'|

_ T'
N = ---- (Normal)
|T'|
_ _ _
B = T x N (Binormal)

k = |T'| (Curvature)

t = dot(-B',N) (Torsion)

Example:
theta = 2*pi*linspace(0,2,100);
x = cos(theta);
y = sin(theta);
z = theta/(2*pi);
[T,N,B,k,t] = frenet(x,y,z);
line(x,y,z), hold on

quiver3(x,y,z,T(:,1),T(:,2),T(:,3),'color','r')
quiver3(x,y,z,N(:,1),N(:,2),N(:,3),'color','g')
quiver3(x,y,z,B(:,1),B(:,2),B(:,3),'color','b')
legend('Curve','Tangent','Normal','Binormal')

See also: GRADIENT

Cite As

Daniel Claxton (2024). Frenet (https://www.mathworks.com/matlabcentral/fileexchange/11169-frenet), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R14
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Smoothing in Help Center and MATLAB Answers
Acknowledgements

Inspired: frenet_robust.zip

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Version Published Release Notes
1.0.0.0

Summary Change