找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1665|回复: 6

[分享] 已知凸度求圆心

[复制链接]
发表于 2019-5-2 12:01:04 | 显示全部楼层 |阅读模式

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

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

×
关于多短线中凸度弧,怎么计算其圆心的问题,这里或者网上给出的方法有两类:1,写了一大段代码,分别讨论了凸度的取值计算圆心
2,使用arx函数计算圆心

第一种方法很啰嗦,第二种方法很简洁,但需要在arx的环境中使用。
其实还有一种方法(和我的解法一样),好像也在本坛子里见过,但是,没有很好的简化。

这里把我多年以前推导的公式分享出来,希望能帮到需要的人。

假设此段凸度弧的起点和端点分别是(x1,y1),(x2,y2),凸度为bulge(有符号)。
那么圆心的坐标为:

x=0.5*((x1+x2)-b*(y2-y1))
y=0.5*((y1+y2)+b*(x2-x1))

其中:b=0.5*(1/bulge-bulge)
bulge=0时,代表直线,显然不需要计算圆心。

具体的推导过程见我的文章,这里就不重复了。
https:// blog.csdn.net/jiangyb999/article/details/89366912

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

已领礼包: 19个

财富等级: 恭喜发财

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

使用道具 举报

 楼主| 发表于 2019-5-2 14:23:04 | 显示全部楼层
Lisphk 发表于 2019-5-2 13:59
楼主,用ARX方法怎么求

我不怎么研究用arx,虽然也写过arx程序,所以不是很了解。
我的记忆里是这样的(似乎在坛子里见过),有个函数接受起点,端点和凸度作为参数,创建一个弧,之后,可以取得这个弧的圆心等参数。
题外话,即使是在arx环境里,用我的公式计算圆心仅仅需要三行代码,有何不可?

点评

只是使用ARX的几何库更方便,当然你有代码积累更好,很多时候如果要现去推导去写,还不如直接用库的。 另外,自己写的,有可能考虑不全。 比如你这个,凸度正负都考虑了吗  详情 回复 发表于 2019-5-2 22:24
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2019-5-2 22:24:05 | 显示全部楼层
jiangyb999 发表于 2019-5-2 14:23
我不怎么研究用arx,虽然也写过arx程序,所以不是很了解。
我的记忆里是这样的(似乎在坛子里见过),有 ...

只是使用ARX的几何库更方便,当然你有代码积累更好,很多时候如果要现去推导去写,还不如直接用库的。
另外,自己写的,有可能考虑不全。
比如你这个,凸度正负都考虑了吗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-2 22:50:05 | 显示全部楼层
newer 发表于 2019-5-2 22:24
只是使用ARX的几何库更方便,当然你有代码积累更好,很多时候如果要现去推导去写,还不如直接用库的。
...

不用考虑凸度的正负,带入计算即可。我是说,连同凸度的符号一起带入。
不要对自己没有信心,仅仅是个简单几何计算而已。
如果说在arx的环境里,一定要用arx函数来得到结果而使自己放心或者说更显专业,无可厚非。
欢迎大家质疑。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2019-5-3 21:18:42 | 显示全部楼层
推导和总结的很好,大大简化了计算过程。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2019-5-23 14:18:37 | 显示全部楼层
(setq cot   (* 0.5 (- (/ 1.0 bulge) bulge))
          x     (/(-(+ (car p1)(car p2))(*(-(cadr p2)(cadr p1))cot)) 2.0)
          y     (/(+ (+ (cadr p1)(cadr p2))(*(-(car p2)(car p1))cot)) 2.0)
)
---------------------------------
翻出20多年前的程序蛮感慨的  
人生如梦
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 23:33 , Processed in 0.351915 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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