几何题有时会要求我们对坐标系中的点进行旋转,给出角度,或者以某一条直线为新的坐标轴。
对旋转问题,我们可以用三角函数等解决,但是精度问题难以解决。
学习了解析几何部分知识以后,我想到了一种能避免出现小数的方法。
例:给出一条直线和一些点的坐标。问该直线是否这些点的对称轴。
分析:以该直线为x'轴,以其某条垂线为y'轴,将所有点的新坐标求出来,再用哈希判断即可。关键是坐标转换。
已知两个点,如何确定过这两个点的直线?
设直线为Ax+By+C=0,两点分别为(x0,y0),(x1,y1)。
则有:Ax0+By0+C=0
…… ①
Ax1+By1+C=0
…… ②
①-②得 (x0-x1)A + (y0-y1)B = 0
令A =
y0-y1,B = x1-x0则可满足条件,此时代入其中一个方程可以求出C。
至于垂线方程,设为A'x+B'y+C'=0,那么A'=-B,B'=A,再将线上的点代入方程可求出C',没有要求时,可令C'为任意值。
那么,有了直线方程以后,要进行坐标转换。(x0,y0) --> (x0',y0')。
可以认为,x0'即点到y'轴的距离,y0'即点到x'轴的距离,套公式即可计算出来,完成坐标转换。
点到直线的距离公式:点(x0,y0),直线Ax+By+C=0
距离d =
(Ax0+By0+C) / √(A^2+B^2)
因为对同一直线,所有距离都有公因子√(A^2+B^2),所以都不除以该公因子即可令所有坐标为整数。
加载中,请稍候......