如果是你图片显示的效果,你得收集这些资料,
按多段线处理
ep1.
第一,判断是否闭合,取得未闭合的多段线的起始点和结束点,
第二,判断起始点和结束点是否在闭合多边形之内,搜索 点是否在多边形内。有多种。
第三,用修剪或延伸命令实现最终效果。
ep2.
第一第二同上。
第三,点都在外,取得起始点或结束点离闭合多边形的最近点,修改非闭合多边形的为该点。
ep3.仅想法,不一定能实现
用双延伸方式取得两个物体的交点,修改非闭合线的起始点,结束点为交点。
附上点在多边形的判断函数 (狂刀程序)- ;; No.51 判断点是否在多边形内(狂刀程序)
- (defun isPtinPM (xPt Points)
- (equal
- PI
- (abs
- (apply
- '+
- (mapcar '(lambda (x y) (rem (- (angle xPt x) (angle xPt y)) PI))
- (reverse (cdr (reverse (cons (last Points) Points))))
- Points
- )
- )
- )
- 1e-6
- )
- )
|