网资酷

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 136|回复: 1

点关于直线/平面的对称点

[复制链接]

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-9-20 22:13:29 | 显示全部楼层 |阅读模式
定义:已知欧氏空间上一点(原始点)及一确定的直线/平面,由原始点作直线/平面的垂线,在垂线上若存在到垂足的距离与原始点到垂足距离相等的其他点,则为原始点关于确定直线/平面的对称点。若不存在则说明点在线上。
本文将从求2维欧氏空间中点关于直线的对称点出发,通过向量法说明该类问题的一种一般思想(对比讨论了直线方程法),也通过向量法给出了3维欧氏空间中点关于平面的对称点的结果,并附上了MATLAB代码。
本文暂不讨论3维欧氏空间中点关于直线的对称点,原因是专栏之后可能会讨论将特定的3维问题转化到2维的方法,这个问题最后可以转化为求2维欧氏空间中点关于直线的对称点。
向量法

如图所示,对于给定的坐标原点O,我们的目标是找到连接原始点R与垂足V的垂直向量\vec{RV}=\vec{c},然后通过\overrightarrow{OS}=\overrightarrow{OR}+2\vec{c}得到对称点S的坐标。



2维欧氏空间中点关于直线的对称点

对于直线:Ax+By+C=0,我们知道\vec{b}=(A,B)是天然的垂直于这条直线的向量,如果不太清楚的话可以在点乘的应用那篇中得到理解。这样我们只需要知道直线上任意一点L与原始点R的连线向量\overrightarrow{LR}=\vec{a},在\vec{b}上的投影向量就是-\vec{c},即\vec{c}=-\left( \vec{a}\cdot \frac{\vec{b}}{|\vec{b}|} \right)\frac{\vec{b}}{|\vec{b}|}。
[ 这里的负号我也解释一下:我们总需要\vec{a}\cdot\vec{c}<0,由于直线方程Ax+By+C=0的两边加负号仍然成立,所以\vec{b}可能有两个方向,当\vec{a}\cdot\vec{b}>0时(我们希望大家明白这里是\vec{b}指向R所在一侧更严格的说法),即图中所示这种情况,要使\vec{a}\cdot\vec{c}<0则要有负号出现;当\vec{a}\cdot\vec{b}<0时,虽然\vec{c}的方向与\vec{b}相同,由于\vec{a}\cdot \frac{\vec{b}}{|\vec{b}|}的值小于0,还是要加个负号。
我知道这里你可能没有完全明白,那我也只能告诉你目前为止我觉得这是合理的。 ]
设点R(x_0,y_0),S(x\prime,y\prime),如图所示,对于Ax+By+C=0,我们很容易能找到其上一定点L\left( -\frac{C}{2A},-\frac{C}{2B} \right)。




则有:




实际上对于AB=0的情况我们是不需要特殊考虑的,若A=0则可以有L\left(0,-\frac{C}{B}\right),B=0则可以有L\left(-\frac{C}{A},0\right),但\vec{c}=-\frac{Ax_0+By_0+C}{A^2+B^2}\left( A,B \right)是都成立的。
遂有:



我们需要说明的是,这个问题是可以通过直线的方程根据几何条件联立方程求解的那一套来做(下面就讲),但对于高维(这里指4维及以上)的情况,对于不清晰的菜鸟而言似乎不太容易操作。
3维欧氏空间中点关于平面的对称点

对于平面:Ax+By+Cz+D=0





写到这里,我想n维欧氏空间中点关于n-1维几何体的对称点的公式可以被轻松地给出:
设R(r_1,r_2,...,r_n),S(s_1,s_2,...,s_n),n-1维度几何体的方程为\sum_{i=1}^{n-1}a_ix_i+a_n=0,则有:
s_j=r_j-2\frac{a_j\left( \sum_{i=1}^{n-1}{a_i}r_i+a_n \right)}{\sum_{i=1}^{n-1}{a_{i}^{2}}}=\frac{r_j\sum_{i=1}^{n-1}{a_{i}^{2}}-2a_j\left( \sum_{i=1}^{n-1}{a_i}r_i+a_n \right)}{\sum_{i=1}^{n-1}{a_{i}^{2}}}
直线方程法

已知直线Ax+By+C=0的垂直向量是(A,B),方向向量(模长不一定为1)(B,-A),所以描述两点之间的连线(原始点与对称点)与直线垂直有:
B\left(x^\prime-x_0\right)-A\left(y^\prime-y_0\right)=0
同时,原始点与对称点的重点在直线上,有:
A\frac{x'+x_0}{2}+B\frac{y'+y_0}{2}+C=0
化简联立可得:




遂有:




对于AB=0的情况,若A=0则垂直向量是(0,1),B=0则垂直向量是(1,0),但最终的结果式是都一致的。
但对于高维的情况,则请恕笔者愚笨。
验证与勘误

代码画图直观感受

%%%%本程序是用来测试2维对称点公式的简单版本
%直线参数设置,简易版本不允许AB==0
A=1;
B=1;
C=0;
x=[-10:10];
y=-C/B-A/B.*x;

%原始点坐标
rx=4;
ry=8;

%对称点计算
sx=(B^2*rx-A^2*rx-2*A*B*ry-2*A*C)/(A^2+B^2);
sy=(A^2*ry-B^2*ry-2*A*B*rx-2*B*C)/(A^2+B^2);

%画图
px=[rx,sx];
py=[ry,sy];
plot(x,y);
hold on
plot(px,py,'o','LineWidth',5);
axis equal



这里之所以是简易版是因为完整版有点复杂,没有到能搬上来的程度。
利用对称点公式推导点到直线距离公式

笔者依稀记得在笔者的数学启蒙阶段有一本《高考数学拉档提分全攻略(解析几何)》,作者是闻杰老师,书中提到了一种巧妙的推导点到直线距离公式的方法,但书已不在侧,只好在此一提以纪念笔者那段小有遗憾的美好时光。


勘误




这个回答中的对称点公式不对,后面其他回答中的答案和笔者对的上。




本文使用 Zhihu On VSCode 创作并发布
回复

使用道具 举报

0

主题

4

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2025-2-25 11:42:09 | 显示全部楼层
锄禾日当午,发帖真辛苦。谁知坛中餐,帖帖皆辛苦!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网资酷

GMT+8, 2025-3-15 06:46 , Processed in 0.077944 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表