Fixing a plotting problem over a fixed axes
1 view (last 30 days)
Show older comments
I want the below spirals to be evenly spaced (in both x and y axes). I am hoping distance between the rows and columns of the helical spirals to be the same, while each center will lie on the same line. I am not sure how to use MATLAB to calculate that for me. The radius of the helical spirals will change and I think there is way to use MATLAB to evenly space them out rather than manually calculating the distance of them.
The axes will always be constrained from -255 to 255, so only radius stays the same.
I pasted the code and what the spirals look from the xy axes
I am hoping the spacing between each row would be constant so that the spirals lie on the same line
Code
clc; clear; close all
%
% prompt1 = 'Radius: ';
% radius = input(prompt1);
% prompt2 = 'Layer Height: ';
% height = input(prompt2);
height = 250;
% prompt3 = 'Number of Layers: ';
% numlayer = input(prompt3);
spirals = (1:10:61);
num = 1:1:7;
for columns=1:4
for rows = 1:length(spirals)
center = -250 + (spirals(rows))*num(rows); % this was calculated to work only for this radius
indent =255 - (columns*30);
gap=height./columns;
d=height;
r = spirals(rows);
z=linspace(0,d,1000);
t=(2*pi/gap)*z;
x=r*cos(t)+center;
y=r*sin(t)+ indent;
hold on
plot3(x,y,z,'o','MarkerSize',2)
xlim([-255 255])
ylim([-255 255])
zlim([1 255])
grid on
xlabel('\it Increasing Radius \rightarrow')
ylabel('\it Increasing Layer Height \leftarrow')
end
end
7 Comments
Accepted Answer
darova
on 19 Aug 2019
See attached file
dy = max(spirals);
indent = linspace(-255+dy, 255-dy,4);
y=r*sin(t)+ indent(columns);
FOr thicker line use:
plot(x,y,'linewidth',2)
0 Comments
More Answers (0)
See Also
Categories
Find more on Graphics Object Properties in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!