明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9387|回复: 24

【求助】怎样求得直线和椭圆的交点

  [复制链接]
发表于 2007-8-3 10:42:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2007-8-18 17:42:23 编辑

怎样判断直线和椭圆有交点?

求助各路英雄了!

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2007-8-3 12:31:00 | 显示全部楼层
难道一定要解析求解?!
人们也没有完全理解神经网络的构造,但不妨碍从事智能工作。
 楼主| 发表于 2007-8-3 13:17:00 | 显示全部楼层
本帖最后由 作者 于 2007-8-3 17:11:48 编辑

  椭圆的基本知识不知道也能解决?

发表于 2007-8-3 14:08:00 | 显示全部楼层
nonsmall发表于2007-8-3 10:42:00怎样判断直线和椭圆有交点?椭圆的公式和性质我都忘了,求助各路英雄了!

不介意来这看看吧.

http://acad.net.cn/viewthread.php?tid=297&page=1&extra=page%3D1

这里的高手很多都知道怎么判断............呵呵

发表于 2007-8-3 14:10:00 | 显示全部楼层

恐怕别人理解不了你的幽默。提问最好不要让别人产生歧义或其他想法。

这个题目的确存在不用解析的方法。

"椭圆的公式和性质我都忘了,",建议到google去搜索一下,不要事事都提到lisp论坛上来问,能自己动手解决的最好自己解决。

发表于 2007-8-3 15:56:00 | 显示全部楼层

or check here

http://www.menziengineering.ch/Downloads/Download.htm

and search 'intersection'

 楼主| 发表于 2007-8-3 17:16:00 | 显示全部楼层

斑竹说的对,我的语言不太好,对不住大家了。

感谢楼上的朋友,但是我只想要算法,程序中我不能用vl函数。

斑竹,谢谢你解决我另外的那个问题。

但是我是先google了,发现只有解二元二次方程了,我想知道不用解析的办法。

发表于 2007-8-3 17:33:00 | 显示全部楼层

栏选一下,我想应该可以。

发表于 2007-8-3 18:14:00 | 显示全部楼层

如果不想用vl函数的话,可以这样:

1、先用entget取得椭圆的中心 -DXF码 10  

   椭圆长轴端点--相对于中心点  DXF码 11  

   椭圆的短长比      DXF码 40

   由此推算出长轴a,短轴b,及其旋转角度。

   并由此建立一个用户坐标系统,X轴为长轴方向,原点为中心。

   则椭圆的方程可以表达为:X^2/a^2+Y^2/b^2=1.

2、得到线段的两个端点   DXF码 10,11 

   对这两点的坐标变换,用函数(trans pt 0 1) 即把这两个端点转化成用户坐标。

   依此得出其直线方程: mX+nY+p=0,其中m,n,p的值应该不难算出。

   (如果你去搜索一下的话,说不定有这方面的源程序)

3、解方程组:X^2/a^2+Y^2/b^2=1 ;mX+nY+p=0

   得到判别式: delta   

4、如果delta < 0 则肯定没有交点。

   如果delta >= 0 则求出交点。

5、对交点进行判断:

   如果交点在直线的延长线上,则此线段与椭圆不相交。否则相交,返回交点值。

诚然,这样做的确复杂了很多,但是,并不是复杂的方法就一定速度慢,我相信这个方法比用

   vla-IntersectWith 肯定要快。而且,你自己在动手解这个题的时候,你会学到很多东西。

  

发表于 2007-8-3 18:20:00 | 显示全部楼层

支持楼上

数学学的好

怎么也赶不上啊...

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-28 03:45 , Processed in 0.195588 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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