Fabric.js 圓形centeredScaling屬性


Fabric.js是一個強大的JavaScript庫,可以輕鬆建立和操作畫布物件。centeredScaling屬性是Fabric.js中一個非常有用的屬性,在處理圓形時非常有用。此屬性允許我們從圓形的中心點縮放。在某些設計場景中,它非常有用。

什麼是中心縮放?

中心縮放是Fabric.js物件的屬性,允許我們從其中心點而不是角點調整物件大小。此屬性保持物件相對於其中心點的位置,這意味著當我們調整其大小時,它不會移到側面或頂部/底部。

中心縮放對於圓形物件最有用,因為它確保在調整圓形大小時保持完美的圓形。例如,如果我們想從圓形的其中一個角點縮放它,它會變成橢圓而不是完美的圓形。

語法

var circle = new fabric.Circle({
   // other circle properties
   centeredScaling: true
});

如何在Fabric.js圓形中使用中心縮放?

我們需要將centeredScaling屬性設定為true,才能在Fabric.js圓形中使用中心縮放。以下是如何建立圓形並啟用中心縮放的示例:

var canvas = new fabric.Canvas('canvas');
var circle = new fabric.Circle({
   radius: 40,
   fill: 'red',
   left: 110,
   top: 110,
   centeredScaling: true
});
canvas.add(circle);

在上面的示例中,我們建立了一個新的Fabric.js畫布,然後建立一個新的圓形物件,其半徑為40,背景顏色為紅色。我們還設定了left和top屬性,以將圓形定位在畫布左側和頂邊緣110畫素處。最後,我們將centeredScaling屬性設定為true,以為此圓形啟用中心縮放。

使用此程式碼,我們現在可以透過拖動其其中一個角點控制代碼來調整圓形大小,它將從其中心點而不是角點進行縮放。我們將在下面的示例中看到這一點:

circle.set({
   scaleX: 1.5,
   scaleY: 1.5
});
canvas.renderAll();

在上面的示例中,我們使用set()方法將scaleX和scaleY屬性設定為1.5,這將使圓形的大小增加50%。然後,我們呼叫renderAll()方法來更新畫布並顯示調整大小的圓形。

在Fabric.js圓形中使用中心縮放的好處:

  • 完美的圓形縮放 - 啟用中心縮放後,當我們調整圓形大小時,它將始終保持其圓形。

  • 精確定位 - 透過從中心點縮放,我們可以確保圓形完美地居中在畫布上,這對於精確的設計佈局非常有用。

  • 一致的設計 - 透過對所有圓形物件使用中心縮放,我們可以確保畫布上的一致設計美感。

示例 - Fabric.js 圓形中心縮放

在上面的示例中,我們首先使用CDN連結在HTML頭部包含Fabric.js庫。然後,我們建立一個畫布元素,並使用畫布元素的ID初始化一個新的Fabric.js畫布物件。

<!DOCTYPE html>
<html>
<head>
   <title>Fabric.js Circle Centered Scaling Example</title>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/5.3.1/fabric.min.js"></script>
</head>
<body>
   <h1>Fabric.js Circle Centered Scaling</h1>
   <canvas id="canvas" width="500" height="500"></canvas>
   </body>
</html>

接下來,我們使用fabric.circle建構函式建立一個新的圓形物件,半徑為40,背景顏色為紅色,並啟用中心縮放。我們設定left和top屬性,以將圓形定位在畫布左側和頂邊緣110畫素處。

<script>
   var canvas = new fabric.Canvas('canvas');
   var circle = new fabric.Circle({
      radius: 40,
      fill: 'red',
      left: 110,
      top: 110,
      centeredScaling: true
   });    
</script>

我們使用canvas.add()方法將圓形新增到畫布,然後使用circle.set()方法透過將scaleX和scaleY屬性設定為1.5來將圓形縮放至其原始大小的50%。

<script>
   canvas.add(circle);
   circle.set({
      scaleX: 1.5,
      scaleY: 1.5
   });    
</script>

最後,我們呼叫canvas.renderAll()方法來渲染畫布並顯示調整大小的圓形。

<script>
   canvas.renderAll();
</script>

示例

<!DOCTYPE html>
<html>
<head>
   <title>Fabric.js Circle Centered Scaling Example</title>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/5.3.1/fabric.min.js"></script>
</head>
<body>
   <h2>Fabric.js Circle Centered Scaling</h2>
   <p>Select the circle to see that the controlling corners.</p>
   <canvas id="canvas" width="500" height="500"></canvas>
   <script>
      // Initialize the canvas
      var canvas = new fabric.Canvas('canvas');
      
      // Create a new circle with centered scaling enabled
      var circle = new fabric.Circle({
         radius: 40,
         fill: 'red',
         left: 110,
         top: 20,
         centeredScaling: true
      });
      
      // Add the circle to the canvas
      canvas.add(circle);
      
      // Scale the circle to twice its original size
      circle.set({
         scaleX: 1.5,
         scaleY: 1.5
      });
      
      // Render the canvas
      canvas.renderAll();
   </script>
</body>
</html>

結論

中心縮放是Fabric.js的一個強大屬性,它增強了在畫布上設計和操作圓形物件的能力。透過為圓形啟用中心縮放,我們可以確保在調整它們大小時保持其圓形和精確的定位。

更新於:2023年4月13日

瀏覽量:169

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.