利用Matlab求向量CD关于对称线AB的镜像向量C2D2
A、B两点构成镜像线AB;C、D两点构成原向量CD;C2、D2构成的向量C2D2为向量CD关于AB线对称的向量。
代码如下:
clc
clear
close all;
%%%%%%%%%%%%%%%%%%%%%以下为主程序
%%%%%%%%%%%%%向量AB为镜像线;CD为原向量;C2D2为对称向量
A = [8*rand(1,1);8*rand(1,1)];%向量1A 点
B = [8*rand(1,1);8*rand(1,1)];%向量1B 点
C = [8*rand(1,1);8*rand(1,1)];%向量2C 点
D = [8*rand(1,1);8*rand(1,1)];%向量2D 点
TEMC = C;
TEMD = D;
AngBAC = acosd((norm(A-B)^2+norm(A-C)^2-norm(B-C)^2)/(2*(norm(A-B)*norm(A-C))));
AngABC = acosd((norm(B-A)^2+norm(B-C)^2-norm(A-C)^2)/(2*(norm(B-A)*norm(B-C))));
if AngBAC>AngABC || AngBAC==AngABC
AA = B;
BB = A;
C2ABJvLi = norm(AA-C) * sind(AngABC);
E = [cosd(0),sind(0); -sind(0),cosd(0)]...
*((BB - AA).* ((norm(AA-C) * cosd(AngABC)) / norm(A-B))) + AA;
else
C2ABJvLi = norm(A-C) * sind(AngBAC);
E = [cosd(0),sind(0); -sind(0),cosd(0)]...
*((B - A).*