如何在结构js中缩放时保持Rect的圆角

may*_*iya 1 javascript rounding rect fabricjs

我使用的是面料js版本1.7.22.

原始对象:

在此输入图像描述

目前的结果:

在此输入图像描述

预期结果 :

在此输入图像描述

shk*_*per 5

一种方法是观察scaling事件并将Rect的比例重置为1,修改它widthheight改为:

const canvas = new fabric.Canvas('c')

const rect = new fabric.Rect({
  left: 10,
  top: 10,
  width: 100,
  height: 100,
  fill: 'blue',
  rx: 10,
  ry: 10,
  objectCaching: false,
})

rect.on('scaling', function() {
  this.set({
    width: this.width * this.scaleX,
    height: this.height * this.scaleY,
    scaleX: 1,
    scaleY: 1
  })
})

canvas.add(rect).renderAll()
Run Code Online (Sandbox Code Playgroud)
canvas {
  border: 1px solid red;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.22/fabric.js"></script>
<canvas id="c" width="300" height="250"></canvas>
Run Code Online (Sandbox Code Playgroud)