2014-05-04 21 views
0

我需要找到已放置到组中的对象的中心点。我尝试过的东西:Fabric.js:查找组中的对象(矩形)的中心

•getCenterPoint():返回中心点,就好像对象在0,0一样。

•使用组和对象的getTop()和getLeft()计算中心点。不幸的是,在组值工作时发现对象返回负值。

•使用对象的高度/宽度计算值。这在下面列出的情况下会变得非常接近,但这只是因为我的示例具有非常特定的属性,并且不会推广。

下面的对象是什么,我目前正与合作,特别是我期待找到RECT2中心:

 // create a rectangle object 
     var rect = new fabric.Rect({ 
      top: 10, 
      fill: 'white', 
      stroke: 'black', 
      width: 20, 
      height: 20 
     }); 

     // create a rectangle object 
     var rect2 = new fabric.Rect({ 
      top: 10, 
      left: 20, 
      fill: 'white', 
      stroke: 'black', 
      width: 20, 
      height: 20 
     }); 

     var line = new fabric.Line([ 20, 20, 40, 20], 
     { 
      top: 0, 
      left: 0, 
      stroke: 'black'  
     }); 

     var group = new fabric.Group([ rect, rect2, line ],{ 
      top: 100, 
      left: 100, 
      hasRotatingPoint: false 
     }); 

回答

0

使用类似 项目= group._objects;

runa循环中的项目的组,找到你的对象,并获得组内的对象的坐标。

例如:items [i] .oCoords.tr.x 其余的是数学,tr.x和br.x的中点= center x 同样找到y。

如果你想找到中心的画布:add group.top,group.left to these values