找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3203|回复: 20

[求助] 新手请教多段线顶点到圆弧中点距离

[复制链接]

已领礼包: 6056个

财富等级: 富甲天下

发表于 2013-5-14 16:42:05 | 显示全部楼层 |阅读模式

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

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

×
大家好,请大侠教我如何求多段线顶点到圆弧中点的距离,也就是图中pt2点的坐标。
pt.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-5-14 17:47:39 | 显示全部楼层
(vlax-curve-getClosestPointTo  plobj (trans (inters pt1 pt2 pt3 pt4 t)1 0))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-14 17:56:02 | 显示全部楼层
Gdlprfcu 发表于 2013-5-14 17:47
(vlax-curve-getClosestPointTo  plobj (trans (inters pt1 pt2 pt3 pt4 t)1 0))

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

使用道具 举报

已领礼包: 6056个

财富等级: 富甲天下

 楼主| 发表于 2013-5-14 17:56:45 | 显示全部楼层
Gdlprfcu 发表于 2013-5-14 17:47
(vlax-curve-getClosestPointTo  plobj (trans (inters pt1 pt2 pt3 pt4 t)1 0))

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

使用道具 举报

发表于 2013-5-14 18:02:04 | 显示全部楼层
pt2=(vlax-curve-getClosestPointTo  plobj (trans (inters pt1 pt2 pt3 pt4 t)1 0))
plobj:多段线对象
pt1:多段线线段一起点
pt2:多段线线段一终点
pt3:多段线线段二起点
pt4:多段线线段二终点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6056个

财富等级: 富甲天下

 楼主| 发表于 2013-5-14 18:17:50 | 显示全部楼层
Gdlprfcu 发表于 2013-5-14 18:02
pt2=(vlax-curve-getClosestPointTo  plobj (trans (inters pt1 pt2 pt3 pt4 t)1 0))
plobj:多段线对象
p ...

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

使用道具 举报

发表于 2013-5-14 18:35:23 | 显示全部楼层
kqqt6236 发表于 2013-5-14 18:17
那如果是封闭的多段线呢?又或者是两条线段的延伸交点到圆角中点呢?

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

使用道具 举报

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

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-5-14 19:40:36 | 显示全部楼层
我说一个思路,多段线的弧段在组码上是表现两个端点和一个凸度,对单一弧段和先直线再弧的多段线而言,实际上pt1点是相对于弧段两顶点对称的,所以pt1到pt2的距离,就是pt1到弧段两端点连线中点的距离减去弧段的矢高。
对于两线夹一弧段的情况,因为后面的弧段不一定是相切的,这时pt1就可能不再是这样的对称点,那么就要通过弧段端点及凸度计算出圆弧的半径和圆心,再用pt1到圆心的距离减去半径。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-14 20:05:27 来自手机 | 显示全部楼层
可以用firstderiv,secondderiv来自: Android客户端
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2013-5-14 20:37:19 | 显示全部楼层
ll_j 发表于 2013-5-14 19:40
我说一个思路,多段线的弧段在组码上是表现两个端点和一个凸度,对单一弧段和先直线再弧的多段线而言,实际 ...

我的意思就是用polar先求出pt1到cen的距离,再减去圆弧半径。但由于本人还没有学习vlisp,不知道有没有vlisp函数可以很方便地求出多段线圆弧的坐标。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-14 20:40:16 | 显示全部楼层
本帖最后由 Lispboy 于 2013-5-14 20:58 编辑


QQ截图20130514203832.png



(distance p4 p5) 几何里面应该叫"弦高“,不是应该等于 R(1- COS(a)) 吗? 角a 好求吧。

初中几何知识啊。


ACAD凸度定义

设圆弧所包含的圆心角为A(弧度表示),则凸度=四分之一圆心角之正切值

lisp表示

(setq 凸度 (/ (sin (/ A 4.0)) (cos (/ A 4.0))))
C#表示
凸度=sin(A/4)/cos(A/4)
凸度值的范围即sin(A/4)/cos(A/4)的取值范围,A=0~2*PI
0到正无究,当A=360时,cos90=0,所以值无效
凸度的正负表明弧的方向



第二种方法,直接用凸度和P2P3的长度就得到H


QQ截图20130514205402.png






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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-14 21:45:14 | 显示全部楼层
Lispboy 发表于 2013-5-14 20:40
(distance p4 p5) 几何里面应该叫"弦高“,不是应该等于 R(1- COS(a)) 吗? 角a 好求吧。

...

上面的帖子是求”弦高“,没看清楼主的要求,看下面的图。

凸度值可以从多段线弧段直接得到,其他就好求了。

QQ截图20130514221017.png

评分

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

查看全部评分

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

使用道具 举报

发表于 2013-5-15 08:11:51 | 显示全部楼层
理解 Vlax-curve-getFirstDeriv Vlax-curve-getSecondDeriv
  1. (defun drderiv (e p / v1 v2 ms pam)
  2.   (setq p   (vlax-curve-getclosestpointto e p)
  3. pam (vlax-curve-getparamatpoint e P)
  4. v1  (vlax-curve-getfirstderiv e pam)
  5. v2  (vlax-curve-getsecondderiv e pam)
  6. ms  (vla-get-modelspace
  7.        (vla-get-activedocument (vlax-get-acad-object))
  8.      )
  9.   )
  10.   (vla-put-color
  11.     (vlax-invoke ms 'addline p (mapcar '+ p v1))
  12.     acred
  13.   )
  14.   (vla-put-color
  15.     (vlax-invoke ms 'addline p (mapcar '+ p v2))
  16.     acgreen
  17.   ) ;_ Line spline Xline Ray 时退化为'(0. 0. 0.)
  18.   (vlax-release-object ms)
  19. )
  20. ;;Line Arc Circle Pline Spline Ellipse Xline Ray
  21. ;;在 WCS 下测试
  22. (defun c:tt (/ e)
  23.   (if (setq e (entsel))
  24.     (drderiv (car e) (cadr e))
  25.   )
  26.   (princ)
  27. )

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 08:11 , Processed in 0.451576 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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