Object 如何在旋转组对象fabric.js时保持对象稳定

Object 如何在旋转组对象fabric.js时保持对象稳定,object,rotation,html5-canvas,fabricjs,Object,Rotation,Html5 Canvas,Fabricjs,我将fabric.js库用于我的html5画布应用程序 我创建了一组需要有稳定文本对象(稳定位置)的对象,同时旋转组对象 为了实现这一点,我创建了一个包含两个文本的组对象,并将其添加到父组对象中 在“对象:旋转”事件中,我找到内部组并保持角度稳定: if (obj.type == 'group'){ obj.angle = -actObj.angle; actObj.setCoords(); canvas.renderAll

我将fabric.js库用于我的html5画布应用程序

我创建了一组需要有稳定文本对象(稳定位置)的对象,同时旋转组对象

  • 为了实现这一点,我创建了一个包含两个文本的组对象,并将其添加到父组对象中
  • 在“对象:旋转”事件中,我找到内部组并保持角度稳定:

     if (obj.type == 'group'){              
           obj.angle = -actObj.angle;
           actObj.setCoords();
           canvas.renderAll();
       }
    
  • 请看我的小提琴示例:

    如果我更改文本的顶部位置,它们旋转时的位置不稳定,我必须在第一个文本上放置top:-5,在第二个文本上放置top:5。 如果我在一个文本对象上放置top:-10,在另一个文本对象上放置top:0,则它们在旋转时不稳定

    var text = new fabric.Text(N, {
        fontSize: fontSizeTable,
        fontWeight: 'bold',
        originX: 'center',
        originY: 'center',
        top: -5,
        fill: 'black'
    });
    
    text2 = new fabric.Text('table name rotonta', {
        fontSize: fontSizeTable,
        fontWeight: 'bold',
        originX: 'center',
        originY: 'center',
        top: 5,
        fill: 'black'
    });
    

    我的JSFIDLE示例如下:

    您需要通过将top设置为0将组置于中间:

    var textsGroup = new fabric.Group(texts, {
             originX: 'center',
             originY: 'center',
             top:0,
             objectGroupType: 'texts'
    });
    
    更新小提琴: