注册 登录
编程论坛 Matlab

matlab中求正方形的角坐标

yobey 发布于 2008-10-29 12:07, 1694 次点击
请问,当我有A,B,C一个正方形里任意三个点的坐标的时候,我该如何用函数求得这个正方形里第四个点的坐标呢?
2 回复
#2
meteora11062008-10-31 23:54
给你个思路,三个点可以计算出三个点间距离,找出长度相等的两个线段,就确定了三个点的位置关系,则对角的两个点的中点就是正方形的中心了,再用第三个点就能计算出第四个点了。
#3
hitzhang2008-11-01 13:23
a=pi*rand;t=linspace(a,2*pi+a,5);
x=cos(t);y=sin(t);
X=[x;y];%首先随机产生正方形顶点坐标
X(:,5)=[];
id=randperm(4);
XX=X(:,id(1:3));%随机选取三个顶点
C=mean(XX,2);%这三个顶点的中心坐标
D=sum((repmat(C,1,3)-XX).^2);
ID=find(D==min(D));%距C最短的顶点位置
X4=XX(:,ID)+3*(C-XX(:,ID));%第4个顶点的坐标
scatter(XX(1,:),XX(2,:),'sr');hold on;scatter(C(1),C(2),'or');scatter(X4(1),X4(2),'sb');axis equal%看看效果吧
1