kwok 发表于 2014-3-3 20:11:47

弄一个选集每个对象只移X方向,跟左边相邻对象距离都一样,Y坐标不变

本帖最后由 kwok 于 2014-3-4 09:28 编辑

帮弄一个选集中每个对象只移动X方向,跟左边相邻对象相距距离都一样,Y坐标不变,
或是教教怎么编这个移动lsp,想弄这个好久了,一直不知怎么弄....谢谢.
不知怎么找规律,只是想不管每个对象在上或在下,都只是x方向 向左移到靠它左边x值最小的对象.







.

自贡黄明儒 发表于 2014-3-3 21:23:03

比如最右的对象,它的左边有一个圆和键,怎么判哪一个是左边对象,有什么规律可循?

Gu_xl 发表于 2014-3-3 23:04:24

你自己能把规律总结出来么?

kwok 发表于 2014-3-4 08:55:14

本帖最后由 kwok 于 2014-3-4 12:09 编辑

只是想不管每个对象在上或在下,都只是x方向 向左移到靠它左边x值最小的对象.

规律是要选择选集后,取得每个对象求最大范围圈, 以圈的最左边线找出左边离它最近的边,
然后对象以圈的左边在基础沿着水平向左边移到距最刚才找到最近边x正100的距离上(这个正100是可以自定的)
然后循环对每个对象进行这样x方向向左边移动排列. y坐标不变.



图看不清可以点图放大看.


kwok 发表于 2014-3-4 09:47:33

本帖最后由 kwok 于 2014-3-4 10:04 编辑

自贡黄明儒 发表于 2014-3-3 21:23 static/image/common/back.gif
比如最右的对象,它的左边有一个圆和键,怎么判哪一个是左边对象,有什么规律可循?
每个对象是独立的找左边x方向最近对象后移动,以最近的作为左边对象。
如1楼的图,圆左这边有上下2个对象,但圆的最大范围向左边x方向移动时不会碰到左边下面的对象,所以就不用管下面那个.

kwok 发表于 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循环对选集每个对象同样操作.示意图如下:

页: [1]
查看完整版本: 弄一个选集每个对象只移X方向,跟左边相邻对象距离都一样,Y坐标不变