Line segments in a box created with random angles

3 次查看(过去 30 天)
Hi everyone! I hope everyone is doing well!
I have the following problem:
My goal is to create a bunch of random lines in a box as follows: a random point on one of the 4 edges of the box is chosen. A random angle is also chosen, and combing the coordinates of that random point and the angle, I have the equation of the line, so that it can be drawn.
The problem is that most of the lines seem to be close together, which tells me that the process is not that random, as they seem to not be randomly distributed in the box. How can I fix this?
I am attaching a pic that shows what i get when i run the code below.
figure;
axes('XLim', [-0.1, 1.1], 'YLim', [-0.1, 1.1]);
nLine =20;
Coor = [0, 1, 1, 0, 0; ...
0, 0, 1, 1, 0];
P1 = nan(2, nLine);
for k = 1:nLine
edge = randperm(4, 2);
edge1 = edge(1);
P1(:,k) = Coor(:, edge1) + rand * (Coor(:, edge1 + 1) - Coor(:, edge1));
angle = pi*rand;
slope = tan(angle);
b = P1(2,k)- slope* P1(1,k);
fig = refline(slope,b)
end

采纳的回答

Dave B
Dave B 2021-10-28
Is your axis still at the limits you specified at the top? My guess is that refline is changing the limits. Can you just put this line at the end (instead of the axes at the beginning):
set(gca,'XLim', [-0.1, 1.1], 'YLim', [-0.1, 1.1])
  4 个评论
Dave B
Dave B 2021-10-28
No worries, we have axes and axis, and then properties like XAxis and the whole thing get confusing at times!

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by