I am trying to create N
random pairs of points (N = 50) of a given distances, inside a 500
meters hexagon. The distance D created by using (dmax - dmin).*rand(N,1) + dmin
, with dmin = 10
and dmax = 100
in Matlab. I understant that the first I have to generate a set of points ([x1 y1])
that have at least distance D
from the main hexagon border, then generate the second set of points ([x2 y2])
that have exact distance D
from the first set. But sometime I got the problem with the second point outside of hexagon, because if the first position on the hexagol border and plus D
disance, then the second position is outside of hexagon (I mean that I want to generate random pair position inside of hexagol). Could anybody help me in generating this kind of scenario and fix the problem? Thanks.
For example as
R = 500; % hexagol radius
N = 50; % number pair positions
d_min = 10; % minimum distance
d_max = 100; % maximum distance
D = (d_max - d_min).*rand(N,1) + d_min; % randomly distance
X = [0,0]; % hexagol center
j=0;
while j < N
j=j+1;
theta(j)=2*pi*rand(1,1);
u= rand()+ rand();
if u < 1
r(j) = R * u;
else
r(j) = R * (2 - u);
end
% to create the first position
x1(j)=r(j)*cos(theta(j)) + X(1,1); % first x positions
y1(j)=r(j)*sin(theta(j)) + X(1,2); % first y positions
end
% to create the second position
x2(j) = x1(j) + D(j); % second x positions
y2(j) = y1(j) + D(j); % second y positions