作者peter26194 (啦啦哼哈)
看板Oversea_Job
标题Re: [经验] Google、FB、LinkedIn 面试经验
时间Thu Apr 28 04:38:49 2016
※ 引述《FRAXIS (喔喔)》之铭言:
: 我被问过一个问题:在三维空间中有两个相同大小的圆盘位於不同位置
: (朝向也可能不同),求这两圆盘间的最短距离。除了暴力法我还真想
: 不出来怎麽作..
最近也在面试,看到那道题目,试着想了一下解法:
给定两圆c1, c2
找出两圆各自所在的平面p1, p2
把两圆圆心连线得到L线段
将L投影到p1上,得到L1线段
L1的一端点是c1圆心,
1)另一端点如果在圆c1之内,那麽此端点就设为a1;
2)另一端点如果在圆c1之外,那麽则把a1定为L1和c1的交点
用同样方法,将L投影到p2上,得到L2线段,再找出a2
则a1, a2连线就是最短距离
灵感是从「平面上的两圆,要找最短距离,要找圆心连线和两圆的交点」而来的,
我也不太确定这是对的,大家觉得呢?
(虽然在这里讨论怪怪的,不过应该是可以的吧?)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 73.246.116.45
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Oversea_Job/M.1461789532.A.7B1.html
※ 编辑: peter26194 (73.246.116.45), 04/28/2016 04:42:33
1F:推 airrooco: L-R1cos(R1方向与连线所夹锐角)-R2cos(R2夹角) 这样呢? 04/28 05:19
所以R1, R2是圆半径
R1cos(R1方向与L夹角)是圆半径R1在L上投影的长度
可是为什麽 L 减去两个圆半径各自在L上投影的长度,就会是最短距离呢?
我画了图感觉不太像呀
===
顺带一提,刚刚发现本文提到的方法遇到a1, a2有一个在圆内时,
算出来的答案明显是错的。
要再多几步操作的样子。
不过我看到下一篇回文,已经失去一切信心了...
(我连大一微积分都记忆丧失了...)
※ 编辑: peter26194 (73.246.116.45), 04/28/2016 10:49:56
2F:推 airrooco: 恩...我少考虑一些事情XD 04/28 17:57
3F:→ airrooco: 先考虑以某盘子为原点,盘方向为z轴,两盘中心连线落在 04/28 17:58
4F:→ airrooco: 第一象限的x-z平面,然後再来考虑另一个盘子的方向,但 04/28 18:01
5F:→ airrooco: 我把第二个盘子切成截面椭圆了....XD 04/28 18:01