24小时热门版块排行榜    

查看: 1865  |  回复: 15

xunrou

铁虫 (初入文坛)

[求助] 几何题 圆柱体相交条件 已有4人参与

如题,两个有限高度和半径的圆柱体,相交(即有接触)的条件是啥?我个人考虑了好多情况,总感觉考虑不全,求各位大神给个思路,给圆面和圆柱相交的思路也行
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shenyxtata

金虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
把两个圆柱的范围都写成参数式(各两个参数),然后求此约束条件下的最短距离,如果此距离为0的话相交或接触。
其实不管哪种方法,快接触和真正接触都很难区分的。
2楼2015-08-29 11:30:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xunrou

铁虫 (初入文坛)

引用回帖:
2楼: Originally posted by shenyxtata at 2015-08-29 11:30:23
把两个圆柱的范围都写成参数式(各两个参数),然后求此约束条件下的最短距离,如果此距离为0的话相交或接触。
其实不管哪种方法,快接触和真正接触都很难区分的。

圆柱体参数方程不好写吧,我之前看过一篇论文推导任意对称轴的圆柱参数方程,有点复杂,有三角函数,而且还要求距离,求极值点,真说不定会有解析解
3楼2015-08-29 11:48:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shenyxtata

金虫 (正式写手)

【答案】应助回帖

引用回帖:
3楼: Originally posted by xunrou at 2015-08-29 11:48:32
圆柱体参数方程不好写吧,我之前看过一篇论文推导任意对称轴的圆柱参数方程,有点复杂,有三角函数,而且还要求距离,求极值点,真说不定会有解析解...

对,一个参数沿轴向,另一个是角度,肯定有三角函数。但应该很快收敛的。

如果非要解析解,或者说,通过简单的程序实现,可以考虑先把两个圆柱扩为好处理的几何如球或者三个轴都分别平行的长方体,如果扩大后的几何也不相交,就直接pass了,省去后面麻烦的步骤。

否则,可以先求两个无限圆柱是否相交,相交的话看公共部分是否同时属于两个有限圆柱。相交的充要条件是轴的距离小于等于半径之和。细节楼主应该可以搞定了吧。
4楼2015-08-29 15:32:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xunrou

铁虫 (初入文坛)

引用回帖:
4楼: Originally posted by shenyxtata at 2015-08-29 15:32:32
对,一个参数沿轴向,另一个是角度,肯定有三角函数。但应该很快收敛的。

如果非要解析解,或者说,通过简单的程序实现,可以考虑先把两个圆柱扩为好处理的几何如球或者三个轴都分别平行的长方体,如果扩大后的 ...

我的确是需要程序实现一般情况的,我明白你意思,可是,我不是很懂相交部分的求法,难道联立两个圆柱体的参数方程,令xyz分别相等,求参数的值?大神以你的理解,能求出参数的解么?应该解不唯一,毕竟相交部分不止一个点。
5楼2015-08-29 19:46:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shenyxtata

金虫 (正式写手)

引用回帖:
5楼: Originally posted by xunrou at 2015-08-29 19:46:57
我的确是需要程序实现一般情况的,我明白你意思,可是,我不是很懂相交部分的求法,难道联立两个圆柱体的参数方程,令xyz分别相等,求参数的值?大神以你的理解,能求出参数的解么?应该解不唯一,毕竟相交部分不止 ...

这个要抽象的思考,各种相交的情况下如何表示,关键的点有哪几个等等。
6楼2015-08-29 21:16:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

peterflyer

木虫之王 (文学泰斗)

peterflyer


【答案】应助回帖

感谢参与,应助指数 +1
若是无限长的话,只要计算两个圆柱体的轴线之间的最短距离是否大于、等于或小于两个圆柱体的半径之和(分别对应不想交、相切、相交的情形)。但对于有限长的圆柱体来讲,除了上面规以外,还要考虑任何一个圆柱体的两个端面到另一个圆柱体轴线的距离是否大于、等于或小于这另一个圆柱体的半径了。
7楼2015-08-30 13:04:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xunrou

铁虫 (初入文坛)

引用回帖:
7楼: Originally posted by peterflyer at 2015-08-30 13:04:09
若是无限长的话,只要计算两个圆柱体的轴线之间的最短距离是否大于、等于或小于两个圆柱体的半径之和(分别对应不想交、相切、相交的情形)。但对于有限长的圆柱体来讲,除了上面规以外,还要考虑任何一个圆柱体的两 ...

你没考虑到一点,端面到另一个圆柱体轴线的垂足不一定在轴线段上,所以无法跟半径进行判断。
8楼2015-08-30 13:10:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

【答案】应助回帖

感谢参与,应助指数 +1
首先,圆柱如何表达,比如用轴线的方向和中点向量表示轴,再加上半径;圆柱的两个法向量跟轴同向的底面也能确定;其它形式的圆柱可以转换成这种方式表示;

其次,算法设计。可以变成一个带有线性约束的最小二乘问题,找一个在圆柱底面之间的点,它到圆柱两轴的距离的平方和最小; 这就是一个带有线性约束的最小二乘问题,在matlab中用 lsqlin 就能方便求解。找到这个解之后,检验它到两个圆柱轴线的距离是不是小于各自的半径。这样就能判断了。

5个金币只能帮你到这里了。
ส็็็็็็็็็็็็็็็็็็็็
9楼2015-08-31 07:29:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiazhiwen

铜虫 (小有名气)

看了楼上,感觉学数学的好NB

发自小木虫Android客户端
10楼2015-08-31 08:38:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xunrou 的主题更新
信息提示
请填处理意见