用matlab求解平面坐标已知A和B的坐标和AB,AC的距离,C点绕A点旋转,还知道角BAC的角度(0~360),求C点的坐标.
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/27 07:23:10
用matlab求解平面坐标已知A和B的坐标和AB,AC的距离,C点绕A点旋转,还知道角BAC的角度(0~360),求C点的坐标.
用matlab求解平面坐标
已知A和B的坐标和AB,AC的距离,C点绕A点旋转,还知道角BAC的角度(0~360),求C点的坐标.
用matlab求解平面坐标已知A和B的坐标和AB,AC的距离,C点绕A点旋转,还知道角BAC的角度(0~360),求C点的坐标.
function get_C()
% 我原来是求的C点的轨迹,现在给你修改了一下
% 请将该代码拷到m文件运行即可
% 在你的描述中,B点坐标是多少没多大影响
% 当∠BAC确定时,C点应该有两种可能
A = [1 1]; %% 假设的,你可以修改这个值
B = [1 2]; %% 假设的,你可以修改这个值
r = 1; %% AC 的长度,假设的,你可以修改这个值
t = pi/4; %% 弧度,即45°,假设的,你可以修改这个值
AB = B - A; %% AB 是向量,从A点指向B点
n1 = [-AB(2),AB(1)]; %% 与向量AB垂直的向量,该向量可能有两个方向,对应C点的两种可能
n2 = -n1; %% n1,n2代表两种可能
AC1 = AB.*cos(t) + n1.*sin(t); %% 第一种,AC1是向量
AC2 = AB.*cos(t) + n2.*sin(t); %% 第二种,AC2是向量
L_AC1 = sqrt(sum(AC1.^2)); %% 求AC1的长度,用于向量AC1归一化
AC1 = AC1/L_AC1; %% 向量AC1归一化
AC1 = r*AC1; %% 实际的AC1,长度为 r
L_AC2 = sqrt(sum(AC2.^2)); %% 求AC2的长度,用于向量AC2归一化
AC2 = AC2/L_AC2; %% 向量AC2归一化
AC2 = r*AC2; %% 实际的AC2,长度为 r
C1 = A + AC1; %% C1,C2 即为所求点
C2 = A + AC2;
end