# Creating a 3d Helix Spiral with Surf command

41 views (last 30 days)
ArMalik on 27 Apr 2021
Moved: DGM on 13 Mar 2023
Hello Matlab family,
I am struck with this code in which I am unable to create a right 3d helical plot. Can you guys help me in identifying the problem

DGM on 28 Apr 2021
Hey, someone got results!
The remaining problems are few:
clc; clf
p=0.199;% Pitch distance
a=0.02999500;% Radius of the helis wire
n = 5; %is the number of turns.
del = atan(p/(2*pi*b));
u=linspace(0, 2*pi, 10); % correct range, practical number of points
v=linspace(0, 2*pi*n, 300); % practical number of points
[u,v]=meshgrid(u,v);
x1 = b + a*cos(u); % u, not delta
x2 = -a*sin(u)*sin(del);
x = (x1.*sin(v))+(x2.*cos(v)); % elementwise mult
y =(-x1.*cos(v))+(x2.*sin(v)); % elementwise mult
z = ((p*v)/(2*pi))+(a*sin(u)*cos(del));
h=surf(x, y, z);
title('3D Image of Helix')
zlabel('Height')
axis equal % otherwise it gets stretched out
% make it fancy
axis off
lightangle(-90,30)
h.FaceLighting = 'gouraud';
h.SpecularStrength = 0.5;
h.AmbientStrength = 0.3;
h.DiffuseStrength = 0.9;
##### 3 CommentsShow 1 older commentHide 1 older comment
Ar on 12 Mar 2023
Moved: DGM on 13 Mar 2023
Cool!
How to make black background?
DGM on 13 Mar 2023
Moved: DGM on 13 Mar 2023
This is the code I used:
% set custom colormap
cset = ccmap('pastel',128);
colormap(cset)
bgc = 0; % background gray level
oc = get(gcf,'color'); % remember current background
set(gcf,'color',[1 1 1]*bgc) % set new background
set(gcf,'color',oc) % reset original figure background
Though note that this uses third party tools:
Also note that I did this in R2015b with an older version of export_fig(). You may find that it doesn't render exactly the same in different environments.

### Categories

Find more on Lighting, Transparency, and Shading in Help Center and File Exchange

R2018a

### Community Treasure Hunt

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

Start Hunting!