找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1891|回复: 4

[求助] [LISP程序]:求助,如何判断重线

[复制链接]
发表于 2003-7-29 08:40:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
怎样使用LISP程序检查图形中有无重线,断点问题。如果逐点比较,是否会和两条线的交点有冲突。而且图形比较复杂的话,运行起来比较慢。谁有比较好的方法,教我一下,谢谢先
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-7-29 08:58:57 | 显示全部楼层

Re: [LISP程序]:求助,如何判断重线

最初由 alpr 发布
[B]怎样使用LISP程序检查图形中有无重线,断点问题。如果逐点比较,是否会和两条线的交点有冲突。而且图形比较复杂的话,运行起来比较慢。谁有比较好的方法,教我一下,谢谢先 [/B]


1. 把选择集里面的LINE按照角度,角度相同(0-PI)的线放入一个表中

  1. [font=courier]((角度1 LINE1 LINE2 ... LINEN)(角度2 LINE1 ... LINEN)...(角度N LINE1 ... LINE2))[/font]
复制代码


角度相同的线才有可能是有重线.


2. 循环处理上面的表中的每一子表, 每个子表LIST1, 对角度相同的LINE实体, 求一个固定点(比如图形最低点)到每个LINE的距离,距离相同的LINE在组织一个表:

  
  1. [font=courier]((距离1 LINE1 .... LINEN) ... (距离N LINE1 ... LINEN))[/font]
复制代码


   上面得到的子表是角度相同的,并且一个固定点到这些LINE距离相同的LINE的表, 只有这个表中的所有LINE才有可能有重线.

3. 处理上面的表, 把每个LINE根据组码10,11得到在角度方向的排序. 固定下相同角度,距离垂直方向点距离相同的, 角度方向上从左到右的实体表.

4. 根据算法判断相邻的两个线是否重线.比如一个线的10点是否在另一个线的10,11之间,重线有两种情况,一个是完全在另个线内, 另一个是部分在另一个直线内(新的LINE是两个LINE的总长.

上面是思路, 在写图形程序, 排序的应用很重要, 只有我们让程序能唯一确定了实体的位置, 那么我们就可以做我们想做的事了.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-7-29 10:20:37 | 显示全部楼层
谢谢,有点深,我慢慢做一下,有问题还得麻烦
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-9-24 11:42:52 | 显示全部楼层
感触颇深,赞赞赞赞赞赞32个赞赞
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2016-12-11 11:17:24 | 显示全部楼层
很好的思路,谢谢了。真心需要。100个赞
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-5 16:06 , Processed in 0.169804 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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