Algorithm 如何用不相交的旋转矩形填充矩形区域?
我尝试为物理模拟创建一个场景。场景由漂浮在矩形池塘中的矩形浮冰组成。大概是这样的: 因此,我需要用宽度和高度在指定范围内的非相交旋转矩形填充矩形区域。我不需要找到该地区的最佳覆盖范围。目标只是生成不同大小的浮冰,而不需要交叉点Algorithm 如何用不相交的旋转矩形填充矩形区域?,algorithm,geometry,2d,Algorithm,Geometry,2d,我尝试为物理模拟创建一个场景。场景由漂浮在矩形池塘中的矩形浮冰组成。大概是这样的: 因此,我需要用宽度和高度在指定范围内的非相交旋转矩形填充矩形区域。我不需要找到该地区的最佳覆盖范围。目标只是生成不同大小的浮冰,而不需要交叉点 和我想得到一个没有任何动态的解决方案,只使用碰撞检测算法。 < P>你可以考虑模拟一个方块落入方块桶中并保存所有盒子的位置。 是一个开源的2D物理库,它可以为你做这件事,你可能会把它看作是愤怒的小鸟和百万个闪存游戏背后的物理引擎。 < P>你可以考虑模拟一个方块落入方块
和我想得到一个没有任何动态的解决方案,只使用碰撞检测算法。
< P>你可以考虑模拟一个方块落入方块桶中并保存所有盒子的位置。是一个开源的2D物理库,它可以为你做这件事,你可能会把它看作是愤怒的小鸟和百万个闪存游戏背后的物理引擎。
< P>你可以考虑模拟一个方块落入方块桶中并保存所有盒子的位置。是一个开源的2D物理库,可以为您实现这一点-您可能会认为它是愤怒的小鸟和无数Flash游戏背后的物理引擎。要对实体(即非相交)对象建模,您可以使用物理引擎。碰巧我前几天读了一篇文章,里面有一段视频几乎完全描述了你的需求。是box2d的.NET版本,您可能听说过。要对实体(即非相交)对象建模,可以使用物理引擎。碰巧我前几天读了一篇文章,里面有一段视频几乎完全描述了你的需求。是box2d的.NET版本,您可能听说过。我会做以下几点: 假设矩形的长度介于[MaxSize MinSize]之间
r <- MaxSize
do{
Trying adding non-intersecting circles to the area with radius r and random center (x,y). We use circle instead of rectangle because intersection detecting for circles are easier than rectangles. e.g. if distance(x,y,x',y')<r+r' then we are good.
If adding circle failed{
r--;
if r< MinSize break;
}
}
r我要做的是:
假设矩形的长度介于[MaxSize MinSize]之间
r <- MaxSize
do{
Trying adding non-intersecting circles to the area with radius r and random center (x,y). We use circle instead of rectangle because intersection detecting for circles are easier than rectangles. e.g. if distance(x,y,x',y')<r+r' then we are good.
If adding circle failed{
r--;
if r< MinSize break;
}
}
r确定它不可能是最优的----最优解决方案将是平铺。:)确定它不可能是最优的----最优解决方案将是平铺。:)这主意不错,但我想得到一个没有任何动力学的解决方案,只使用碰撞检测。我已经根据这条评论更新了我的问题。这主意不错,但我想得到一个没有任何动力学的解决方案,只使用碰撞检测。我已经根据这个评论更新了我的问题。