Creating a 3d Helix Spiral with Surf command

39 次查看(过去 30 天)
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
DGM 2021-4-28
Hey, someone got results!
The remaining problems are few:
clc; clf
p=0.199;% Pitch distance
a=0.02999500;% Radius of the helis wire
b=0.191; %Radius of the helix
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
shading flat
lightangle(-90,30)
h.FaceLighting = 'gouraud';
h.SpecularStrength = 0.5;
h.AmbientStrength = 0.3;
h.DiffuseStrength = 0.9;
  3 个评论
Ar
Ar 2023-3-12
移动:DGM 2023-3-13
Cool!
How to make black background?
DGM
DGM 2023-3-13
移动:DGM 2023-3-13
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
% get screenshot and add padding
hires = addborder(export_fig('-a4','-m2'),[80 120],bgc*255);
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Graphics Object Properties 的更多信息

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by