asdfxx 发表于 2009-7-25 17:46:00
5061220 发表于 2009-7-26 09:18:00
谢谢楼主源码,本人下载了参数学习lijian22 发表于 2009-7-29 01:03:00
怎么不能使用呢》yoyoho 发表于 2009-7-29 10:43:00
<p>感谢楼主提供源码,学习了!<br/></p>z394326635 发表于 2009-7-29 11:07:00
elitefish 发表于 2009-7-29 11:19:00
<br/>;判断 点 与 曲线关系-1:曲线内 0:曲线上 1:曲线外<br/>(defun EF-Curve-ptInside ( entpt/ Count TmpRay)<br/>(setq randAngle (* (/ (ef-rand 3) 500) pi)) ;取 随机 角度<br/>(if (equal pt (vlax-curve-getClosestPointTo ent pt) 1E-6) <br/> 0 ;点在直线上<br/> (progn<br/> (setq ent (vlax-ename->vla-object ent))<br/> (setq tmpRay (vlax-ename->vla-object<br/> (entmakex (list '(0 . "RAY")<br/> '(100 . "AcDbEntity")<br/> '(100 . "AcDbRay")<br/> (cons 10 pt)<br/> (cons 11 (list (cos randAngle) (sin randAngle) 0))<br/> )<br/> )<br/> )<br/> )<br/> (setq pt (vlax-3D-Point pt))<br/> (setq Count 0)<br/> ;;可根据需要调整扫描角度提高检索速度,本程序采用60度<br/> (repeat 6<br/> (vla-rotate TmpRay pt (/ PI 3))<br/> ;;下面这句可以看到扫描过程,实际使用时可以注释掉 <br/> ; (COMMAND "delay" 100)<br/> (if (zerop<br/> (rem<br/>(length<br/> (vlax-invoke ent 'IntersectWith TmpRay acExtendNone) <br/> )<br/>6<br/>)<br/> )<br/> (setq Count (1- Count))<br/> (setq Count (1+ Count))<br/> )<br/> )<br/> (vla-delete TmpRay)<br/> (if (minusp Count)<br/> 1<br/> -1<br/> )<br/> )<br/> )<br/>)射线法判断,采用随机起始角度,以减少误判可能性支持曲线yuun 发表于 2009-7-29 20:30:00
多谢分享,有问题还请水鱼兄多多指点。jingjingme 发表于 2009-7-29 22:24:00
这两天精心分析了作者的源码,敬佩其深厚的编程功底。很多东西都做成了库文件和模块,建议新手向楼主学习。skysurfer 发表于 2009-7-31 16:53:00
<p>这里看到熟悉的兄弟了</p>lijian22 发表于 2009-8-2 11:41:00
w未见源码