这两天遇到了一个初中问题:有两个点表示一个直线
,现有第三个点要求该点关于直线的对称点
如图所示,已知
三点,求
点关于
两点组成的直线的对称点
的坐标
首先给出效果:
重温初中数学:点关于直线的对称点 - JSRUNjsrun.pro这里不直接求
点坐标
,而是求
中点
的坐标,由于是中点,满足
求出
就能得到对称点坐标
然后用了两个性质,一是直线的两点式方程,由于点
在直线
上,故
设
,整理得到
第二个性质是直线
和
垂直,根据向量垂直可得到
同样把
带进去整理一下得
把上面两个式子搞到一起得
然后解方程组就可得到
但我们需要用程序写出来,直接解方程组不方便,可以把其表示成矩阵的形式
稍微整理一下得到
这样写程序实现也变得很容易
这里用js
来实现,并用canvas
画出来,先简单实现了一个Vector2D
和Matrix2x2
,对js
不是很熟悉,写的不好,然后求对称点并画出来,先贴结果,把下面的代码粘到一个.html
文件就可以玩了