MATLAB Answers

How to create a 3D non convex surface (helical ribbon) with a set of points?

6 views (last 30 days)
Nav R
Nav R on 20 May 2020
Commented: darova on 20 May 2020
I have a set of points which define a helical ribbon. I want to know how to create a helical surface from these set of points. I can't use Delaunay Triangulation as it connects all the points and produces a cylinder which I do not want (I need a helical ribbon). Since, it is a non convex shape, I cannot use convex hull funtion either.
Here is an example of a helical ribbon:

  0 Comments

Sign in to comment.

Accepted Answer

darova
darova on 20 May 2020
Use surf
t = linspace(0,5*2*pi,100);
T = [t;t];
Z = [t;t+3]/5;
[X,Y] = pol2cart(T,T*0+3);
surf(X,Y,Z,'edgecolor','none')
light
axis vis3d equal

  2 Comments

Nav R
Nav R on 20 May 2020
Thanks a lot! Can't believe it's this easy.
Can I also know how to create a 3 D helix which has thickness as well?
darova
darova on 20 May 2020
Yes, use these equations of torus: LINK
Use meshgrid to create matrices for θ and φ

Sign in to comment.

More Answers (1)

Sean de Wolski
Sean de Wolski on 20 May 2020
You could consider alphaShape. I'm not sure how it will handle the ribbon aspects though.

  1 Comment

Nav R
Nav R on 20 May 2020
I have tried using alphaShape already, but I'm not sure whether I used it right. I've adjusted the alpha radius to get this figure. It connect alternate points and creates a 'wider' helix which I don't want. It should have connected the nearby points to create a 'thinner' helix. I hope you understood.

Sign in to comment.

Tags

Products


Release

R2020a