找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: mcfield

[求助] 求spline上距某点最近点的切向

[复制链接]
 楼主| 发表于 2014-8-10 11:15:22 | 显示全部楼层
风树 发表于 2014-8-9 20:51
建议提供个例子文件给大家看看吧
这应该是一个普偏的问题,也许答案很简单

附件中是一个dxf文件。与上面的例子不同,更为清晰。里面有三个点ABC。分别为已知点,最近点及反求点。
里面的spline由13个拟合点,及起点终点的切向量拟合,用弦的形式参数节点化。
黄线是C处的切线,可以看到它与线段BC垂直。

请点击此处下载

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

您的用户组是:游客

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



点评

图形版本中遇到未知值“AC1024”。 DXF 输入无效或不完整 -- 图形被放弃。  详情 回复 发表于 2014-8-10 13:24
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-8-10 13:24:19 | 显示全部楼层
mcfield 发表于 2014-8-10 11:15
附件中是一个dxf文件。与上面的例子不同,更为清晰。里面有三个点ABC。分别为已知点,最近点及反求点。
...

图形版本中遇到未知值“AC1024”。
DXF 输入无效或不完整 -- 图形被放弃。

点评

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

使用道具 举报

 楼主| 发表于 2014-8-10 14:53:29 | 显示全部楼层
风树 发表于 2014-8-10 13:24
图形版本中遇到未知值“AC1024”。
DXF 输入无效或不完整 -- 图形被放弃。

这次是dwg文件. 谢谢!
请点击此处下载

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

您的用户组是:游客

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



点评

[attachimg]9270[/attachimg] 用XDRX_API的xdrx_curve_getclosestpoint 测试了你的DWG图,在捕捉设置4133的情况下,是图中的C点,捕捉0的时候,是图中红色的线,是正确的。 你可以用XDRX_API测试下,如果你  详情 回复 发表于 2014-8-10 17:01
图形尺寸极小啊, 放大100倍试试看  详情 回复 发表于 2014-8-10 16:37
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-8-10 16:37:58 | 显示全部楼层
本帖最后由 风树 于 2014-8-10 16:48 编辑
mcfield 发表于 2014-8-10 14:53
这次是dwg文件. 谢谢!

图形尺寸极小啊,
放大100倍试试看吧
否则不要再想了
你可以试一下在你原图只打开对象捕捉中的最近点,原图那条曲线有部分是捕捉不到的

不行的话,用其它软件来做吧




点评

放大一百倍还是有这个问题. 你说的对象捕捉,在arx编程中是什么意思? 感觉完全没涉及到对象捕捉.  详情 回复 发表于 2014-8-10 17:37
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-8-10 17:01:30 | 显示全部楼层
mcfield 发表于 2014-8-10 14:53
这次是dwg文件. 谢谢!

BaiduShurufa_2014-8-10_16-58-50.png


用XDRX_API的xdrx_curve_getclosestpoint 测试了你的DWG图,在捕捉设置4133的情况下,是图中的C点,捕捉0的时候,是图中红色的线,是正确的。测试环境是AUTOCAD 2015.

你可以用XDRX_API测试下,如果你一直有问题,那么还是你的代码的事,请把完整的代码都贴上来。

点评

他是从a点求最近点,能求到接近b点的位置吗?  详情 回复 发表于 2014-8-10 17:30
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-8-10 17:30:12 | 显示全部楼层
XDSoft 发表于 2014-8-10 17:01
用XDRX_API的xdrx_curve_getclosestpoint 测试了你的DWG图,在捕捉设置4133的情况下,是图中的C点 ...

他是从a点求最近点,能求到接近b点的位置吗?

点评

对.我是求spline上离A最近的点。从直觉上是B点,并且已经通过getClosestPointTo()求出来了。但是我还想求B点的切向,然后就直接想用getFirstDeriv(),输入参数是B点,会报错,错误提示是:eGeneralModelingFailure。  详情 回复 发表于 2014-8-10 17:44
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-10 17:37:13 | 显示全部楼层
风树 发表于 2014-8-10 16:37
图形尺寸极小啊,
放大100倍试试看吧
否则不要再想了

放大一百倍还是有这个问题.
你说的对象捕捉,在arx编程中是什么意思?
感觉完全没涉及到对象捕捉.



点评

选直线命令,我的2008是那样的  详情 回复 发表于 2014-8-10 17:44
我的意思是说,在你最后提供的图中,你将对象捕捉打开,只选择最近点,然后选择画直线,你试试蓝色线上是不是有一段是选择不了最近点的,  详情 回复 发表于 2014-8-10 17:42
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-8-10 17:42:41 | 显示全部楼层
mcfield 发表于 2014-8-10 17:37
放大一百倍还是有这个问题.
你说的对象捕捉,在arx编程中是什么意思?
感觉完全没涉及到对象捕捉.

我的意思是说,在你最后提供的图中,你将对象捕捉打开,只选择最近点,然后选择画直线,你试试蓝色线上是不是有一段是选择不了最近点的,


点评

的确,就是我们直觉觉得最近点就在的那一段(B附近),但选最近点会选到对面去(C附近)。  详情 回复 发表于 2014-8-10 17:53
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-8-10 17:44:30 | 显示全部楼层
mcfield 发表于 2014-8-10 17:37
放大一百倍还是有这个问题.
你说的对象捕捉,在arx编程中是什么意思?
感觉完全没涉及到对象捕捉.

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

使用道具 举报

 楼主| 发表于 2014-8-10 17:44:53 | 显示全部楼层
风树 发表于 2014-8-10 17:30
他是从a点求最近点,能求到接近b点的位置吗?

对.我是求spline上离A最近的点。从直觉上是B点,并且已经通过getClosestPointTo()求出来了。但是我还想求B点的切向,然后就直接想用getFirstDeriv(),输入参数是B点,会报错,错误提示是:eGeneralModelingFailure。只能曲线救国,先求的B点的参数值paramB,然后用getFirstDeriv(),输入参数是paramB,可以求出切向,不报错。但这个切向其实不是B点处的,而是C点处的,C点是我用getPointAtParam(),输入参数是paramB。

点评

看图, 这个图就是用你的A点求的,结果是红线,结果是对的。无论捕捉是多少,都是B点。 [attachimg]9272[/attachimg] 命令: (setq pa (getpoint)) end 于 (2465.84 1129.64 0.0) 命令: (setq e (c  详情 回复 发表于 2014-8-10 18:42
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-8-10 17:50:43 | 显示全部楼层
那用arx函数能不能从a点求到图上的b点,我没有编译器,

点评

直接由A点用getClosestPointTo()函数求得就是B点,但再由B点求切向会出错。  详情 回复 发表于 2014-8-10 17:57
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-10 17:53:01 | 显示全部楼层
本帖最后由 mcfield 于 2014-8-10 18:00 编辑
风树 发表于 2014-8-10 17:42
我的意思是说,在你最后提供的图中,你将对象捕捉打开,只选择最近点,然后选择画直线,你试试蓝色线上是 ...

的确,就是我们直觉觉得最近点就在的那一段(B附近),但选最近点会选到对面去(C附近)。

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

使用道具 举报

 楼主| 发表于 2014-8-10 17:57:09 | 显示全部楼层
风树 发表于 2014-8-10 17:50
那用arx函数能不能从a点求到图上的b点,我没有编译器,

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

使用道具 举报

发表于 2014-8-10 17:59:14 | 显示全部楼层
本帖最后由 风树 于 2014-8-10 18:00 编辑

………………………………………………………………

点评

你说的这个函数是getClosestPointTo()吗? 这个函数可以求得B点是A点的最近点。  发表于 2014-8-10 18:03
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2014-8-10 18:26:26 | 显示全部楼层
如果再找不到合适的arx解决你求导的问题,再变通点可以:
假如出现eGeneralModelingFailure,如果你确定该点在样条曲线中可导,非端点,
在该点画个小圆,求交,用导数公式求导

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-10 05:39 , Processed in 0.477034 second(s), 73 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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