找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: mcfield

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

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-8-10 18:42:10 | 显示全部楼层
mcfield 发表于 2014-8-10 17:44
对.我是求spline上离A最近的点。从直觉上是B点,并且已经通过getClosestPointTo()求出来了。但是我还想求 ...

看图,

这个图就是用你的A点求的,结果是红线,结果是对的。无论捕捉是多少,都是B点。

BaiduShurufa_2014-8-10_18-37-30.png


命令: (setq pa (getpoint))
end
于 (2465.84 1129.64 0.0)


命令: (setq e (car (entsel)))
选择对象: <图元名: 7ef02890>
命令: (setq p1 (xdrx_curve_getclosestpoint e pa))
(2465.85 1129.65 0.0)
命令: L
LINE
指定第一个点: !p1
(2465.85 1129.65 0.0)
指定下一点或 [放弃(U)]: !pa
(2465.84 1129.64 0.0)
指定下一点或 [放弃(U)]: *取消*
命令:
命令: *取消*
命令: OSMODE
输入 OSMODE 的新值 <0>: *取消*
命令: OSMODE
输入 OSMODE 的新值 <0>: 4133
命令: (setq p1 (xdrx_curve_getclosestpoint e pa))
(2465.85 1129.65 0.0)
命令: L
LINE
指定第一个点: !p1
(2465.85 1129.65 0.0)

点评

并且我用xdrx_curve_getParamAtPoint算B及C处的参数值,两个是一样的,均为0.421245。这个可能是出问题的关键。  发表于 2014-8-11 00:18
你好。我看了你的命令,你的A点的坐标与我的不同。我用了XDRX_API,作用于我的图。用xdrx_curve_getclosestpoint 也的确得到B点。但接着用xdrx_curve_getFirstDeriv 得到的切向量并不与AB垂直。你可以试下第二步吗?  发表于 2014-8-11 00:04
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-8-11 10:31:32 | 显示全部楼层
用 vlax-curve 类试了试,vlax-curve-getclosestpointto 可以由 A 求得 B,但是用 vlax-curve-getparamatpoint 或者 vlax-curve-getdistatpoint 求 B 点的 参数和距离均为 nil ,也许转为 AcGeCurve 能正确解决

由  B 再用一次 getclosestpointto 就会求得 C 点

点评

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

使用道具 举报

 楼主| 发表于 2014-8-11 10:35:06 | 显示全部楼层
csharp 发表于 2014-8-11 10:31
用 vlax-curve 类试了试,vlax-curve-getclosestpointto 可以由 A 求得 B,但是用 vlax-curve-getparamatpo ...

你这种情况,就和我用AcDb类的一样。

点评

那应该可以讨论些偏门些的方法,将线从b,c间打断试试  详情 回复 发表于 2014-8-11 10:58
求得 B 点后 将向量 BA 旋转 90度  详情 回复 发表于 2014-8-11 10:52
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-8-11 10:52:24 | 显示全部楼层
本帖最后由 csharp 于 2014-8-11 10:53 编辑
mcfield 发表于 2014-8-11 10:35
你这种情况,就和我用AcDb类的一样。

求得 B 点后 将向量  BA 旋转 90度

AcDbCurve 的参数 和 AcGeCurve 的参数意义不一样

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

使用道具 举报

发表于 2014-8-11 10:58:18 | 显示全部楼层
mcfield 发表于 2014-8-11 10:35
你这种情况,就和我用AcDb类的一样。

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

使用道具 举报

发表于 2014-8-11 11:02:18 | 显示全部楼层
想办法让cad重构模型,一条线分两条,注意返回值的判断

点评

观察,基本可以认为BA连线的垂线是切向,只是要注意正反向的问题。  详情 回复 发表于 2014-8-11 11:23
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-11 11:23:51 | 显示全部楼层
风树 发表于 2014-8-11 11:02
想办法让cad重构模型,一条线分两条,注意返回值的判断

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

使用道具 举报

发表于 2014-8-11 11:36:00 | 显示全部楼层
觉得反推可行也行
只是觉得求任意点的导线随时可能出问题了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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