Line segments in a box created with random angles

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

 Accepted Answer

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 Comments

Hi Dave and thank you for your answer!
Do you mean to alter my code in this way:
figure;
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
axes('XLim', [-0.1, 1.1], 'YLim', [-0.1, 1.1]);
because i did it and now i get an empty plot.
You should paste literally the exact line I gave you above. If you use axes you'll create a new axes on top of the old one.
set(gca,'XLim', [-0.1, 1.1], 'YLim', [-0.1, 1.1])
Or alternatively:
axis([-0.1 1.1 -0.1 1.1])
Thank you so much Dave!!! So for the mistake.
No worries, we have axes and axis, and then properties like XAxis and the whole thing get confusing at times!

Sign in to comment.

More Answers (0)

Asked:

on 28 Oct 2021

Commented:

on 28 Oct 2021

Community Treasure Hunt

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

Start Hunting!