求椭圆圆心到椭圆弧最近点和最近距离

前提知识:任意点P0与其到二次曲线y最近点(最远点)P1的连线必垂直于y在P1点处的切线。

推论:这样椭圆心到椭圆距离有四个极值点,即椭圆长轴与椭圆两个交点(极大值点),椭圆短轴与椭圆两个交点(极小值点),

而在极大值点与极小值点之间距离与参数角关系曲线Y是光滑的,这样当参数角位于极大值与极小值之间时,Y是单调递减的,

同样在极小值与极大值之间,Y是单调递增的。

一段椭圆弧可以表示为完整椭圆在参数角θs和参数角θe之间的一段弧。

如图中白色边线椭圆弧参数角范围为0到246°。可知Y在参数角从0到246°时经历极大值---->极小值---->极大值---->极小值的几个区间,这样只需比较Y在极小值点(对应参数角为90°)与末端点(对应参数角为246°)时的距离即可得到最近点P1,已知Y在两个极小值点时值相等,可知对于该椭圆弧,其Y最小对应参数角θ为90°,该点即为椭圆圆心到该段椭圆弧距离最近点。

比较通用的方法:

(1)以椭圆长轴为X轴,短轴为Y轴,椭圆心为原点构造椭圆坐标系LCS;

(2)在LCS下,第一、三象限Y为递减,第二、四象限Y为递增;

(3)将椭圆弧范围表示为LCS下[θs,θe]之间;

(4)依据θ所处象限将[θs,θe]分为几个区间,分别求θ在各区间最小值并比较后得最小值θt,

xt=a*cosθt;yt=bsinθt,得椭圆心到椭圆弧最近点(xt,yt),并可得距离Dt。

其实任意点到椭圆弧最近点也是相同道理,只不过求极值点过程比较关键和复杂。