BDYCAD 发表于 2007-7-10 16:02:00

今天学习程序时碰到一个椭圆算法不会,请教各位朋友.

本帖最后由 作者 于 2007-7-10 16:03:58 编辑 <br /><br /> <p>如图所示,怎么取出一个椭圆的最左边点、最下边点、最右边点、最上边点呀?</p>

Andyhon 发表于 2007-7-10 17:52:00

<p>如果您要的只是最大外框 ==&gt; acet-ent-geomextents</p><p>那两个小圆是 Focus</p><p></p>

highflybir 发表于 2007-8-15 15:24:00

<p></p><p>这是解法,我没来得及写lisp程序,如果是C++,知道了这个算法应该不难写程序了。</p>

highflybir 发表于 2007-8-15 15:31:00

此法是不用intersectwith函数,直接算出来的,应该比较快。

tqr 发表于 2007-8-15 18:22:00

<p>作图法:</p><p>将已知椭圆水平复制一个,用构造线作其上、下公切线,就得到最上、最下点。同样地,垂直复制,可得到最左、最右点。</p>

BDYCAD 发表于 2007-8-16 08:19:00

<p>方法很好!</p>

highflybir 发表于 2007-8-16 10:31:00

<p></p><p>这是我的lisp程序,从中看出这个算法的确比"首先用GetboundingBox获得最大最小点,再建立四条线用IntersectWith求交点",甚至比后面的方法的第一步都快上仅一倍。</p>

highflybir 发表于 2007-8-16 10:34:00

可见复杂的方法并不一定速度慢,在编程过程中能少用ActiveX的方法就尽量避免用,而用纯lisp(不包括command)
页: [1]
查看完整版本: 今天学习程序时碰到一个椭圆算法不会,请教各位朋友.