我正在尝试绘制随机线,从球体的特定半径开始,但我只想要上半球,如图所示
到目前为止,我能够创建随机起点(但R = 15),随机交叉点,随机斜率,但我不知道如何连接所有这些以绘制线条。
我的代码是
%Create the random starting points, slopes, intersections
tracks=input('Give me the number of muon tracks: ');
theta=180.*rand(tracks,1);
rho=15*ones(tracks,1);
startPoint = [theta rho];
[X,Y]=pol2cart(theta*pi/180,rho);
intersection =-6371+(2*6371).*rand(tracks,1);
slope = tand(360.*rand(tracks,1));
我知道我只需要两个元素画一条线,但我现在有点困惑...... 关于如何做的任何想法?
答案 0 :(得分:1)
因为你不希望MATLAB在绘制它们时连接所有的线,你需要在一个循环中单独绘制它们,例如
theta = 2 * pi * rand(tracks, 2); % 2 rows of random points on a circle, in radians
X = cos(theta); Y = sin(theta);
close all;
figure;
hold on;
for nPlot = 1:tracks
plot(X(nPlot, :), Y(nPlot, :), 'r-o');
end
请注意,此代码也会生成与原始版本不同的X和Y - pol2cart
,而上述方法都预期以弧度表示值,而不是度数。