找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1809|回复: 14

[讨论]:关于样条曲线拟合点的疑问

[复制链接]

已领礼包: 70个

财富等级: 招财进宝

发表于 2004-2-28 09:51:33 | 显示全部楼层 |阅读模式

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

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

×
通过鼠标在屏幕上绘制样条曲线后,查询该曲线的属性,可以看到该曲线所有控制点和拟合点的数目和坐标;但是如果对样条曲线进行编辑,如break或offset,查询得到的样条曲线,发现只有控制点而没有拟合点。我现在希望通过编程提取所有样条曲线的拟合点的坐标,这种情况该如何处理?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-2-28 10:10:55 | 显示全部楼层
查DXF组码很容易对应,控制点组码11,拟合点组码10,对应组码40(联机帮助称为“结点值”,我想可能是由这些值控制样条界数的)。根据我的经验,使用11组码和相同多的'(40 . 0)就可以entmake样条曲线。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 70个

财富等级: 招财进宝

 楼主| 发表于 2004-2-28 11:06:45 | 显示全部楼层
谢谢白银长老!
我的意思是,刚生成的样条曲线包含了控制点数据和拟合点数据,但经过某些编辑操作后,样条曲线的拟合数据被从图形数据库中删除了,在属性对话框中找不到了。请问有办法恢复这些数据吗?我需要这些数据。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-2-28 11:35:26 | 显示全部楼层
应该是不可以的,因为acad对一个实体使用一个句柄,所有的数据都跟随其后,数据修改这个句柄是不改的,也就是说,本质上,acad只认识这个当前实体。除非有意识的使用程序将这些数据保留,否则只有内存中的一些残片(Undo使用),是不会随图形保留的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 70个

财富等级: 招财进宝

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

使用道具 举报

发表于 2004-3-2 21:17:08 | 显示全部楼层

Re: [讨论]:关于样条曲线拟合点的疑问

最初由 gyl 发布
[B]...我现在希望通过编程提取所有样条曲线的拟合点的坐标.. [/B]

我不知道你编什么样的程序,也许可以换一种思路不需要这些点,我就有过这种经历。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-3 14:16:20 | 显示全部楼层
  几年前做一个项目的时候研究过这个问题,也解决了,确实是可以反推出来的。

  可以通过公式计算求得,但精度不能保证(如果有很多点,其实也不用很多,超过10个点,累计误差很快会达到一个天文数字),后来用探索法求的,通过二次探索扫描计算,效果很好,精度,速度都能很高(几千个点也很快)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-3-4 14:04:01 | 显示全部楼层
抱歉,看错了。

从拟合点求控制点用的是探索法,从控制点求拟合点就简单多了:
1、了解三次贝塞尔曲线坐标方程的计算公式。
2、了解连续光滑三次贝塞尔曲线的控制原理。
3、了解SPLINE对象组码和贝塞尔曲线之间的对应关系。
4、了解SPLINE对象的几种变化模式。
5、根据SPLINE对象控制点和节点值求出实际匹配贝塞尔曲线方程的控制点。
6、根据贝塞尔曲线方程、实际控制点、节点值求出拟合点(只是对应某节点值的特殊点)。
7、放过高阶样条曲线和三次样条曲线的变种。

样条曲线很复杂,曾经研究过两个月,才了解一点点,具体的实施细节抱歉不能披露。
建议除非迫不得已,一般别从底层做它,前段时间同事一个相关算法就写了13页文档。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-3-4 14:32:39 | 显示全部楼层
最初由 Unknown 发布
[B]抱歉,看错了。

从拟合点求控制点用的是探索法,从控制点求拟合点就简单多了:
1、了解三次贝塞尔曲线坐标方程的计算公式。
2、了解连续光滑三次贝塞尔曲线的控制原理。
3、了解SPLINE对象组码和贝塞尔曲线之?.. [/B]

刚刚知道了一个名词:计算几何学
http://www.google.com/search?q=% ... p;start=30&sa=N

  1. <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="700" id="AutoNumber1" height="498">
  2.   <tr>
  3.     <td width="100%" height="489">
  4.       <iframe name="I1" width="100%" height="100%" src="http://www.google.com/search?q=%E8%AE%A1%E7%AE%97%E5%87%A0%E4%BD%95%E5%AD%A6&hl=zh-CN&lr=lang_zh-CN&ie=UTF-8&start=30&sa=N">
  5. 浏览器不支持嵌入式框架或配置为不显示嵌入式框架
  6.       </iframe>
  7.     </td>
  8.   </tr>
  9. </table>
复制代码

http://algorithm.myrice.com/reso ... /geometry_lib_c.htm


  1. <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="700" id="AutoNumber1" height="498">
  2.   <tr>
  3.     <td width="100%" height="489">
  4.       <iframe name="I1" width="100%" height="100%" src="http://algorithm.myrice.com/resources/code_center/algorithm/geometry_lib/geometry_lib_c.htm">
  5. 浏览器不支持嵌入式框架或配置为不显示嵌入式框架
  6.       </iframe>
  7.     </td>
  8.   </tr>
  9. </table>
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-4 15:18:49 | 显示全部楼层
有一本讲计算几何的书:《计算几何——算法分析与设计》

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

使用道具 举报

已领礼包: 70个

财富等级: 招财进宝

 楼主| 发表于 2004-3-6 16:40:31 | 显示全部楼层
看来这个问题还比较复杂。如果CAD本身提供这个功能就好了。我本来是想提取绘制等高线时的一些特征点,一般是等高线上的曲线拐点和极值点。有人做过类似工作吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-6 17:31:58 | 显示全部楼层
如果不是“绘制等高线时的”点,而是等高线上的点就好办了。因为可以自己在线上布点然后把这些点输出。我过去在求非LINE线的交点时就用这个方法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 70个

财富等级: 招财进宝

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

使用道具 举报

发表于 2004-7-14 21:50:52 | 显示全部楼层
 <p>
<a ref="http://devworld.apple.com/dev/techsupport/develop/issue25/schneider.html" href="http://devworld.apple.com/dev/techsupport/develop/issue25/schneider.html">http://devworld.apple.com/dev/te ... ue25/schneider.html
</font></a></p>
<div style="margin-top:5px; width:660; height:497; margin-left:20px; margin-right:20px; margin-bottom:20px">
  <font face="宋体,verdana,arial,helvetica" ><font style="font-size: 10pt" face="宋体,verdana, Airal,Helvetica,Geneva">
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="700" id="AutoNumber1" height="498">
  <tr>
    <td width="100%" height="489">
      <iframe name="I1" width="100%" height="100%" src="http://devworld.apple.com/dev/techsupport/develop/issue25/schneider.html">
      浏览器不支持嵌入式框架或配置为不显示嵌入式框架</iframe>
    </td>
  </tr>
</table>
</font></pre></font></div></div><br />
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-13 20:27 , Processed in 0.212583 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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