在cad这样画图,用XL画椭圆的公切线。
命令: xl XLINE 指定点或 [水平(H)/垂直(V)/角度(A)/二等分(B)/偏移(O)]: tan 到 <---第一个椭圆 指定通过点: tan 到 <---第二个椭圆 指定通过点:
这样可以求出椭圆的公切线,这个方法也适应其他的曲线,譬如spline.
如果楼主真的一定要完全智能话的,只能这样:
(为了计算简单起见,设置第一个椭圆的的中心为原点,长轴为X轴)
对第二个椭圆,设置参数x 为变量,这个变量的范围是0~2*pi,
在这个范围内,用(vlax-curve-getfirstderiv obj x )得到一个矢量(x2 y2 z2) (y2 /x2 其实就是斜率 )
那么就得到了经过这点的切线方程,
对与第一个椭圆来说,椭圆的切线方程为 x1*x/a^2 + y1*y /b^2 =1;
因此可得到联立方程 方程一: (x1 /a^2 ) / x2 = +( y1 /b^2) y2; (或者) (x1 /a^2 ) / x2 = -( y1 /b^2) y2;
方程二: x1^2/a^2+ y1^2/b^2 = 0;
由此得到x1,y1的解,那么 , 两个平行线的经过的点知道了,它们之间的距离就可以得到
不妨考虑距离也有正负(依据在 x2 y2的切线来判断)
所以对于变量x 来说距离就有不同形成 函数关系那么就可以利用二分法来求解了
|