Clear Filters
Clear Filters

Creating lines of a random orientation and unit length in matlab

6 views (last 30 days)
I want to create a line between two points start:(x1,y1) and end:(x2,y2) where the coordinates x1,y1,x2,y2 are sampled randomly from uniform distribution. Then I want to create another line with the same starting point and same orientation but unit length. My approach: I use "rand" function in matlab to get the coordinates. The orientation using dy/dx. I do not know how do I fix the orientation of the second line as dy/dx.

Accepted Answer

Image Analyst
Image Analyst on 4 Sep 2017
It's just simple division:
maxDistance = 4; % Whatever....
x1 = maxDistance * rand(1, 1)
y1 = maxDistance * rand(1, 1)
x2 = maxDistance * rand(1, 1)
y2 = maxDistance * rand(1, 1)
plot([x1,x2], [y1,y2], 'b*-', 'LineWidth', 2, 'MarkerSize', 10);
grid on;
hold on;
distanceBetween = sqrt((x2-x1)^2 + (y2-y1)^2)
x2unit = x1 + (x2-x1)/distanceBetween
y2unit = y1 + (y2-y1)/distanceBetween
plot([x1,x2unit], [y1,y2unit], 'ro-', 'LineWidth', 2, 'MarkerSize', 15);

More Answers (0)

Categories

Find more on Descriptive Statistics in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!