如何调整两条线之间绘制的线的长度?

How to adjust length of a line drawn between two lines?

我在两点之间画了一条线

origin = [1 0 2];
point = [1 -2.8 2.8 ];

我想在它们之间以一定的距离画一条线。我已经尝试了以下方法,结果是错误的...有更好的方法吗?

distance = 0.5;
point3 = origin + (point-origin) * distance;

我的解决方案: 假定我将从同一起点开始,只是最后一点发生变化:

cff = 0.5; % Coefficient that determines the length of the line
point2(1)= origin(1) + cff* (point(1) - origin(1));
point2(2)= origin(2) + cff* (point(2)- origin(2));
point2(3)= origin(3) + cff* (point(3) - origin(3));

对于距原点一定距离的长度:

d = 3; % Distance
unit_v = point - origin;
u = unit_v / norm(unit_v);
point2(1)= origin(1) + d  * u(1) ;
point2(2)= origin(2) + d  * u(2) ;
point2(3)= origin(3) + d  * u(3) ;

可以计算起点到终点的单位向量并移动起点:

A = [1 0 2];
B = [1 -2.8 2.8 ];
d = 0.5;

V = B-A;        % A->B vector
l = norm(V);    % length of V
U = V/l;        % unit vector
C = A + d*U;    
D = A + (l-d)*U;

hold on
plot3([A(1) B(1)], [A(2) B(2)],[A(3) B(3)], '--o')
plot3([C(1) D(1)], [C(2) D(2)],[C(3) D(3)], '-x', 'linewidth', 2)