目的:在笛卡尔坐标系中,已知两个点的位置,绘制过这两点的射线。同时射线的长度可以自定义。
一、函数的参数说明
输入参数:
PointA:射线的起点;
PointB:射线过的零一点;
Length:射线的长度;
theta:射线的旋转变换角度;
color:显示的射线颜色。
二、函数的Matlab代码
%% 绘制直线:已知2点的坐标,绘制过2点的自定义长度的直线
function DrawLine(PointA,PointB,Length,theta,color)
theta=theta+generate_gaussian_noise_with_variance(1, 1.5);
startPoint=PointA;
% 计算向量差
vector = PointB - PointA;
% 归一化向量,方向向量
direction_vector = vector / norm(vector);% direction_vector 现在是表示P1到P2方向的单位向量
% 旋转方向向量
% 旋转矩阵
R = [cos(theta*pi/180), -sin(theta*pi/180);
sin(theta*pi/180), cos(theta*pi/180)];
% 旋转方向向量
v_rotated = R * direction_vector';
% 定义一个足够大的长度来表示无限长直线
endPoint = PointA + Length * v_rotated';
% 绘制直线
line([startPoint(1), endPoint(1)], [startPoint(2), endPoint(2)], 'Color', color, 'LineWidth', 2);
hold on
end
三、绘制的实例
绘制一条射线,起点(4,3),过点(7,9),长度10,旋转角度0度,颜色红色。结果如下: