首页 > 代码库 > 已知正方形对角线两点求另外两点

已知正方形对角线两点求另外两点

正方形,已知 (x0,y0) 和(x2,y2)  可以根据下列关系求(x1,y1),(x3,y3)
 
x1+x3 = x0+x2;
x1-x3  =  y2-y0;
y1+y3 =  y0+y2;
y1-y3 =  x0-x2;
 
node[0].p[1].x = ((node[0].p[0].x+node[0].p[2].x)+(node[0].p[2].y-node[0].p[0].y))/2;
node[0].p[1].y = ((node[0].p[0].y+node[0].p[2].y)+(node[0].p[0].x-node[0].p[2].x))/2;
node[0].p[3].x = ((node[0].p[0].x+node[0].p[2].x)-(node[0].p[2].y-node[0].p[0].y))/2;
node[0].p[3].y = ((node[0].p[0].y+node[0].p[2].y)-(node[0].p[0].x-node[0].p[2].x))/2;

 

同理已知矩形三点求另外一点

node[0].p[3].x = node[0].p[2].x + (node[0].p[0].x - node[0].p[1].x);
node[0].p[3].y = node[0].p[2].y + (node[0].p[0].y - node[0].p[1].y);

具体见POJ3449

已知正方形对角线两点求另外两点