抛物流线参数化方程推导——从几何性质到代码实现

抛物流线参数化方程推导------从几何性质到代码实现

一、抛物流线几何性质

抛物线的准线过焦点的垂线称为抛物线的 , 轴与抛物线的交点称为抛物线的顶点

设 \(FP = \rho\), \(\angle OFP = \theta\), 抛物线的焦点为\(F\),定点为\(O\),焦准距为\(p\).

如上图所示,当 \(\theta > 90 ^ {\circ}\) 时,作 \(FP\) 在轴上的投影,因为焦点 \(F\) 到准线的垂线段为 \(p\), 顶点 \(O\) 到焦点 \(F\) 的距离为 \(\frac{p}{2}\), 到准线的距离也为 \(\frac{p}{2}\), 故可得得 \(\rho = p - \rho cos{\theta}\), 对上式进行整理得到 [[1]](#[1])

\[\rho = \frac{p}{1 + cos{\theta}} \tag{1} \]

即,

\[FP = \frac{p}{1 + cos{\angle OFP}} \tag{2} \]

当 \(\theta = 90 ^ {\circ}\) 时,\(FP = p\) 满足式 (2).

当 \(0 ^ {\circ} < \theta < 90 ^ {\circ}\) 时,同理可证得式 (2).

当 \(\theta = 0 ^ {\circ}\) 时,\(FP = \frac{p}{2}\), 满足式 (2).

故对于抛物线上任意一点 \(P\), 有:

\[FP = \frac{p}{1 + cos{\phi}} \tag{3} \]

上式中 \(\phi\) 即为 \(\angle OFP\).

二、推导抛物流线参数化表达式

1、\(P\) 点的参数化表示

观察式 (3) 可知,抛物线上一点 \(P\) 和焦点 \(F\) 之间的距离 \(FP\) 是由一个参数化形式表达的,其分母与角度 \(\phi\)有关。重新表达点 \(P\):

\[P = \rho \cdot (cos{\phi}, sin{\phi}), \rho = \frac{p}{1 + cos{\phi}} \]

整理得到:

\[P = (\frac{p cos{\phi}}{1 + cos{\phi}}, \frac{p sin{\phi}}{1 + sin{\phi}}) \tag{4} \]

2、抛物线平移及开口朝向旋转

为了使抛物线可以任意开口,而不是固定在某个方向,我们引入一个额外的旋转角度 \(\alpha\), 即抛物线的对称轴方向。表示抛物线开口方向相对于极坐标系的偏移。

通过旋转矩阵 \(R\) 将点 \(P\) 的极坐标表示旋转 \(\alpha\) 角度,旋转公式为:

\[\begin{bmatrix} x' \\ y ' \end{bmatrix} = R \cdot \begin{bmatrix} x \\ y \end{bmatrix} \tag{5} \]

其中, \(R\) 为:

\[R = \begin{bmatrix} cos{\alpha} & -sin{\alpha} \\ sin{\alpha} & cos{\alpha} \end{bmatrix} \]

将式 (4) 代入式 (5) 中的 \(P(x, y)\) 得到:

\[P' = \begin{bmatrix} cos{\alpha} \cdot \frac{p cos{\phi}}{1 + cos{\phi}} - sin{\alpha} \cdot \frac{p sin{\phi}}{1 + sin{\phi}}, sin{\alpha} \cdot \frac{p cos{\phi}}{1 + cos{\phi}} + cos{\alpha} \cdot \frac{p sin{\phi}}{1 + sin{\phi}} \end{bmatrix} \]

整理得到:

\[P' = \frac{p}{1 + cos{\phi}} \cdot \begin{bmatrix} cos{(\phi + \alpha)}, sin{(\phi + \alpha)} \end{bmatrix} \tag{6} \]

点 \(P\) 的位置经过旋转和偏移后:

\[F(X, Y) = 旋转 + 平移 \]

\[F(X, Y) = \frac{p}{1 + cos{\phi}} \cdot \begin{bmatrix} cos{(\phi + \alpha)}, sin{(\phi + \alpha)} \end{bmatrix} + [F_1, F_2] \tag{7} \]

3、焦准距推导

抛物线是由一个焦点 \(F\) 和一条准线构成的曲线。抛物线上的任意一点 \(P\) 满足如下几何性质:点 \(P\) 到焦点 \(F\) 的距离等于点 \(P\) 到准线的距离。 即 \(FP = p\).

抛物线的开口方向由其对称轴的方向确定。因旋转角度为 \(\alpha\), 故设对称轴的单位向量为:

\[(cos{\alpha}, sin{\alpha}) \]

准线是一条垂直于对称轴的直线,直线的方程可以由点法向式表示。假设准线的法向量与对称轴一致即 \((cos{\alpha}, sin{\alpha})\), 则准线的方程为:

\[(x, y) \cdot (cos{\alpha}, sin{\alpha}) = c \]

其中:

  • \((x, y)\) 为准线上任意一点

  • \(c\) 是一个常数,表示准线的偏移量

对于点 \(P\) 到准线的垂直距离 \(PP'\) 就可以表示为 \(FP\) 在旋转后的对称轴上的投影加上准焦距 \(p\), 即:

\[PP' = (P - F) \cdot (cos{\alpha}, sin{\alpha}) + p \tag{8} \]

根据抛物线定义:\(FP = PP'\)

并将 \(FP\) 表示为点 \(P\) 到焦点 \(F\) 之间的欧氏距离:

\[FP = \sqrt{(P - F) \cdot (P - F)} \tag{9} \]

联立式 (8) 和式 (9):

\[\sqrt{(P - F) \cdot (P - F)} = (P - F) \cdot (cos{\alpha}, sin{\alpha}) + p \\ \Downarrow \\ p = \sqrt{(P - F) \cdot (P - F)} - (P - F) \cdot (cos{\alpha}, sin{\alpha}) \tag{10} \]

4、推得抛物流线参数化方程

将式 (10) 带入式 (7) 可以推得抛物流线参数化的表达形式:

\[F(X, Y) = \frac{\sqrt{(P - F) \cdot (P - F)} - (P - F) \cdot (cos{\alpha}, sin{\alpha})}{1 + cos{\phi}}[cos(\phi + \alpha), sin(\phi + \alpha)] + (F_1, F_2) \]

三、实战

编写计算抛物流线的自定义函数:

matlab 复制代码
function p = myParabola(F, P, phi_1, phi_2, a, N)
    % 计算抛物流线函数,F 为焦点坐标,P 为抛物线上一点
	% phi_1, phi_2 是限制角度,a 为开口旋转角度,N 为插值点数
    phi = linspace(phi_1, phi_2, N)';   %对限制角度进行线性插值
    % 利用抛物流线参数化表达式进行计算
    p = (sqrt((P - F) * (P - F)') - (P - F) * [cos(a), sin(a)]') ./ (1 - cos(phi));
    p = p .* [cos(phi + a), sin(phi + a)] + F;
end

四、总结

抛物流线具有独特的几何特性,由焦点和准线共同定义。抛物线上任意点满足点到焦点的距离等于点到准线的垂直距离,其几何结构由焦点 \(F\)、准线以及焦准距 \(p\) 决定。顶点 \(O\) 位于焦点与准线之间,距离两者均为 \(\frac{p}{2}\). 通过参数化表达式,可以描述抛物线上任意点的位置,其极坐标形式与角度 \(\phi\) 相关。为描述任意方向开口的抛物线,引入对称轴的旋转角度 \(\alpha\),将点的位置通过旋转矩阵修正。此外,准线的方程通过点法向式表示,与对称轴方向一致,而焦准距则通过点到焦点的欧几里得距离与方向向量的投影推导得出。最终,抛物流线的参数化公式将这些几何特性完整表达出来,为工程设计和仿真提供了重要工具。

参考


  1. 抛物线的几何性质(传统几何法推导) ↩︎
相关推荐
傍晚冰川18 分钟前
【STM32点灯大师】定时器实现非阻塞式程序-按键控制LED
笔记·stm32·单片机·嵌入式硬件·学习
pumpkin8451443 分钟前
学习笔记八——内存管理相关
笔记·学习
豆豆1 小时前
day24 学习笔记
笔记·python·opencv·学习
你说你说你来说1 小时前
AdapterView的数据更新
android·笔记
再玩一会儿看代码1 小时前
彻底掌握 XMLHttpRequest(XHR):前端通信的基石
前端·经验分享·笔记·学习·xhr
xiaomu_3471 小时前
工业相机使用笔记
笔记·数码相机·计算机视觉
你说你说你来说1 小时前
复杂点的常用View
android·笔记
慕卿扬2 小时前
基于python的机器学习(六)—— 数据可视化和数据预处理
笔记·python·学习·机器学习·聚类
你说你说你来说2 小时前
常用 View 的使用
android·笔记
njsgcs2 小时前
c++ QTcpServer
笔记