- 积分
- 30269
- 明经币
- 个
- 注册时间
- 2004-10-24
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
楼主 |
发表于 2014-3-4 19:29:47
|
显示全部楼层
本帖最后由 kwok 于 2014-3-4 19:44 编辑
每个对象是独立的找左边x方向最近对象后移动,以最近的作为左边对象。
如1楼的图,圆左这边有上下2个对象 ...
找了下操作方法: (不知这样的方法行得通不?)
1:对选集中每个对象找出最大包围圈的左边p1和p2点;
(好象2个点不够,如果它左边的对象相对比较小,就有可能跳过它了,到时移动就重叠了..
能求p1到p2的边到左边对象的最近距离就好,如4楼的图那样)
2:作p1和p2向左边垂直的放射线,找出最近的交点p3和p4;
(如果找不到交点,一个交点都没有,就此对象原位不动,不用移动)
(如果只找到一个交点就直接取这个交点,不用对比,跳到 第4)
3:算出p1到p3的距离 和p2到p4的距离,然后对比找出最短的确认p3点(或是p4);
4:找出最短距离的p3点后就算出p5点,作为对象要移动的点;
5:把对象从p1基点向左移到p5点;
6循环对选集每个对象同样操作.示意图如下:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|