公式:
int midx = (x[i] + x[j]) / 2;
int midy = (y[i] + y[j]) / 2;//先算出中点
int x1 = midx - (midy - y[i]), y1 = midy + (midx - x[i]);
int x2 = midx + (midy - y[i]), y2 = midy - (midx - x[i]);
至于为什么,上图。转载于MZW_BG
其中黑色的两个点是确定的,我们要得到另外两个红点的坐标……
然后从终点向x,y轴各引一条垂线与正方形的边相交
我们很容易就会证到
然后就很容易明白两条蓝线等长了啦QωQ
上面那条蓝线就是中点和另一个点的纵坐标差,
下面那条就是中点和待求点的横坐标差了,
酱紫就可以由中点坐标求到两个红点的纵坐标了嘛!
求横坐标也是如此啦……
原文:https://www.cnblogs.com/iss-ue/p/12637368.html