找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3200|回复: 21

[求助] 多段线的弧段变成一段段的直线了还有办法把弧线给找回来吗?

[复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-5-27 13:16:06 | 显示全部楼层 |阅读模式

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

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

×

同事提供过来的条件图,局部,不知道怎么操作的,把本来是带弧段的多段线,变成了很密的夹点了,造成半径,圆心啥的都找不到了,有办法根据这些小夹点,给模拟弧线原来的样子给画出来不? 旁边的那个品红的线是弧线,他们本来是同心的。

大图:

QQ截图20130527130558.png


局部放大图:

QQ截图20130527130856.png


问题1: 这样的密密麻麻的夹点的线是什么原因造成的

问题2:品红的弧线是有张图找到的,很多图这个参照弧线也没了,只有蓝色的密密麻麻的夹点的线,能有办法把这个弧线给重新画出来不?

附件是测试的图:

请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:test.rar 
下载次数:7  文件大小:9.46 KB 
下载权限: 不限 以上  [免费赚D豆]



论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-5-27 15:35:15 | 显示全部楼层
用三点计算一个圆弧,取下一点-〉如果在一个弧上,继续取下一点,直至不是弧上点
                                          -〉如果不在一个弧,从第二点再构造一个圆弧,循环上一步
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-27 16:11:46 | 显示全部楼层
我觉得应该算两头,一对一对的往里面,算每对顶点的法线的交点,得到圆心,在根据半径画出来,看了下图,好像还不是完全的弧,就是说那些点不在一个圆上。算出的圆心离散很大,这些点是怎么弄出来的?

eachy大师,如果按你说的从一端开始,误差应该很大,不知道对不?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-5-27 16:13:25 | 显示全部楼层
eachy 发表于 2013-5-27 15:35
用三点计算一个圆弧,取下一点-〉如果在一个弧上,继续取下一点,直至不是弧上点
                        ...

如果点都是从圆弧上截出来的,此法可行!如果还有直线段加密的情况,还要对直线段除重点!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-27 16:54:41 | 显示全部楼层
牢固 发表于 2013-5-27 16:13
如果点都是从圆弧上截出来的,此法可行!如果还有直线段加密的情况,还要对直线段除重点!

写了段代码,还用了昨天讨论的点表的技巧

[pcode=lisp,true]
        (setq pts (mapcar 'cdr (vl-remove-if-not '(lambda(x)(= (car x) 10)) ed))
              pts1 (mapcar 'list pts (cdr pts))
        )
[/pcode]

pts1里面是((p1 p2)(p2 p3)..(pn-1 pn)) 是一段段直线,我想这些段应该是 圆的 每段的弦长,由这个信息推出圆心,半径应该是圆心和第一个顶点的距离。

往下还没想好,G版帮分析下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-5-27 17:55:00 来自手机 | 显示全部楼层
本帖最后由 牢固 于 2013-5-27 17:56 编辑
Lispboy 发表于 2013-5-27 16:54
写了段代码,还用了昨天讨论的点表的技巧




根据给定的图判断,这些点并不共园,所以此命题条件变了,应该是如何用园弧按给定的精度去拟合直线段!也可以说如何去抽稀节点!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-5-27 18:15:05 | 显示全部楼层
牢固 发表于 2013-5-27 17:55
根据给定的图判断,这些点并不共园,所以此命题条件变了,应该是如何用园弧按给定的精度去拟合直线段! ...


写了个初步框架,还要有表长的判断,还要有最后两段的处理[pcode=lisp,true](defun plarc (pts / a b c d1 p d2 r)
  (defun 3parc (p1 p2 p3 / d1 p d2 r)
    (setq d1 (distance a b) ;_斜边
      p  (polar a (angle a c) (* (distance a c) 0.5)) ;_玄中点
      d2 (distance b p)
      r  (/ (* d1 d1) 2 d2)
    ) ;_弓高
    (list r (polar c (angle p2 p) r)) ;_ 半径 , 圆心
  )
  (mapcar 'set
      '(a b c)
      (list (car pts) (cadr pts) (caddr pts))
  );_ 取前三个点
  (cond
    ((= (angle a b) (angle a c)) ;_Line
     (arcinfo (cdr pts));_处理下一个点
    )
    (t
     (setq rc (3parc a b c))
     (if (equal (3parc a b (cadddr pts)) rc 1e-6) ;_下一点仍在圆弧上
       (progn
       )
       (progn;_ 不在继续往下
       )
     )
    )
  )
)[/pcode]

评分

参与人数 1D豆 +5 收起 理由
Lisphk + 5 热心帮忙奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-27 18:29:00 | 显示全部楼层
eachy 发表于 2013-5-27 18:15
写了个初步框架,还要有表长的判断,还要有最后两段的处理(defun plarc (pts / a b c d1 p d2 r)
  (d ...

这样处理也有问题,比如一个正多边形,可能都是直线段,但在一个圆上
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-5-27 19:37:52 | 显示全部楼层
Free-Lancer 发表于 2013-5-27 18:29
这样处理也有问题,比如一个正多边形,可能都是直线段,但在一个圆上

还是逐个节点用用转角限制弯度用圆弧来拟合!请看用此法的拟合效果!

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-27 21:17:49 | 显示全部楼层
牢固 发表于 2013-5-27 19:37
还是逐个节点用用转角限制弯度用圆弧来拟合!请看用此法的拟合效果!

G版,两个实体的圆心能碰到一起吗?有代码吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-5-27 21:34:06 | 显示全部楼层
本帖最后由 牢固 于 2013-5-27 21:35 编辑
Lispboy 发表于 2013-5-27 21:17
G版,两个实体的圆心能碰到一起吗?有代码吗?

代码整理好了,完整代码如下:
(vl-load-com)
(princ "\n多段线抽稀 命令: Simpoly By Gu_xl ")
游客,本帖隐藏的内容需要积分高于 100 才可浏览,您当前积分为 0


评分

参与人数 1D豆 +5 收起 理由
Lisphk + 5

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-27 22:08:17 | 显示全部楼层
我来个直接暴力的,就求第一点和最后一点,然后算出中点,三点得到园,然后画PL线。能满足这个图的精度。

spl-poly.gif

游客,本帖隐藏的内容需要积分高于 50 才可浏览,您当前积分为 0

评分

参与人数 1D豆 +5 收起 理由
Lisphk + 5

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-27 22:10:04 | 显示全部楼层
Free-Lancer 发表于 2013-5-27 18:29
这样处理也有问题,比如一个正多边形,可能都是直线段,但在一个圆上

特定这么密密麻麻的加点的多段弧线了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-27 22:10:56 | 显示全部楼层
牢固 发表于 2013-5-27 21:34
代码整理好了,完整代码如下:
(vl-load-com)
(princ "\n多段线抽稀 命令: Simpoly By Gu_xl ")

G版,这图什么情况下能出现密密麻麻夹点的?遇到过吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-5-27 22:31:18 来自手机 | 显示全部楼层
Lispboy 发表于 2013-5-27 22:10
G版,这图什么情况下能出现密密麻麻夹点的?遇到过吗?

估计都是从别的软件转过来的图才会这样!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 14:36 , Processed in 0.487088 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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