Creating lines of a random orientation and unit length in matlab
4 次查看(过去 30 天)
显示 更早的评论
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.
0 个评论
采纳的回答
Image Analyst
2017-9-4
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);
0 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!