Hao*_*Lim 10 algorithm physics
给定一个二维不规则(非凸)形状的图像,我怎样才能计算出它在平面上稳定的所有方式?例如,如果形状是一个完美的方形矩形,那么它肯定有4种稳定方式.另一方面,圆圈没有稳定的方向,或者每个点都是稳定的方向.
编辑:有一个很好的小游戏叫做Splitter(小心,上瘾的游戏)似乎接近我想要的.注意到你砍掉了一块木头,它会掉到地上并以稳定的方式放置.
编辑:最后,我采用的方法是计算质心(形状)并计算凸包(使用OpenCV),然后遍历每对顶点.如果质心落在由2个顶点形成的线的顶部,则认为是稳定的,否则,不是.
首先找到它的质心(CM).稳定位置是指如果轻微旋转CM将会更高的位置.现在看看船体,包围形状的最小凸起区域:
凸壳和质量中心http://walkytalky.net/extern/hull.png
如果船体是多边形,那么稳定的位置是其中一个侧面上的形状搁置的位置,并且CM直接在该侧面上方(不一定在侧面的中点上方,仅在其上方的某处).
如果船体有曲线(即,如果形状有接触船体的曲线),则必须给予特殊处理.如果CM直接位于曲线的最低点之上,则在弯曲边缘上停留时形状将是稳定的,并且该点处的曲线半径大于CM的高度.
例子:
示例http://walkytalky.net/extern/stable.png的插图
(标有X的椭圆位置不稳定,因为曲率小于到质心的距离.)