
Fixing a plotting problem over a fixed axes
    9 次查看(过去 30 天)
  
       显示 更早的评论
    
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 个评论
采纳的回答
  darova
      
      
 2019-8-19
        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 个评论
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


