关于matlab中求坐标的问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 19:22:06
已知我已经有三个点的坐标,比如是(10,10),(10,20),(20,10),这个时候我想求这个正方形的第四个点的坐标,这里应该是(20,20),我这个里面只是举例,我的那三个点都是随机取得的,但肯定可以组成正方形,我就想当每次我有三个点的时候,能不能利用正方形的相关公式或者怎么的来求得第四个点?不需要提起排列好,那对我来说没有意义。
谢谢~

既然已知的三个点是一定能组成正方形的,那么就要首先判断一下哪两个点的连线是这个正方形的对角线,当然就是连线长度最长的那两个点。假设这三个点的坐标是(x1,y1),(x2,y2),(x3,y3)。所求的点坐标是(x4,y4)。
首先求 f=[(x3-x1)^2+(y3-y1)^2]-[(x3-x2)^2+(y3-y2)^2]
f>0 => (x3,y3),(x1,y1)是对角线上的点
f=0 => (x1,y1),(x2,y2)是对角线上的点
f<0 => (x3,y3),(x2,y2)是对角线上的点

比如判断出来是(x1,y1),(x3,y3)
那么直接用这两点的中点也是(x2,y2),(x4,y4)的中点
即 (x1+x3)/2=(x2+x4)/2
(y1+y3)/2=(y2+y4)/2

导出来就是公式了。

随机取三个点,肯定能组成正方形??
如果三个点之间的角不是直角,那绝对不可能弄出正方形的。

另外这个点的次序也很重要。
细节弄清楚,肯定是可以的。

x3 = 1/2 (x1 + x2 + y1 - y2);
y3 = 1/2 (-x1 + x2 + y1 + y2);
x4 = 1/2 (x1 + x2 - y1 + y2);
y4 = 1/2 (x1 - x2 + y1 + y2);

只要知道正方形的一条对角线上的两个端点坐标就可以计算其它两个点了,已知三个点有些多,
已知一条对角线上的两个端点(x1,y1),(x2,y2),
则正方形其它两个顶点坐标:(x3,y3),(x4,y4),
如下式:
x3 = 1/2 (x1 + x2 + y1 - y2);
y3 = 1/2 (-x1 + x2 + y1 + y2);
x4 = 1/2 (x1 + x2 - y1 + y2);
y4 = 1/2 (x1 - x2 + y1 + y2);