首頁 >web前端 >js教程 >如何使用 FabricJS 在畫布上啟用居中縮放?

如何使用 FabricJS 在畫布上啟用居中縮放?

王林
王林轉載
2023-08-29 13:29:02953瀏覽

如何使用 FabricJS 在画布上启用居中缩放?

在本文中,我們將學習如何使用 FabricJS 在畫布上啟用居中縮放。在 FabricJS 中,當從角落拖曳物件時,物件會按比例變換。我們可以使用 centeredScaling 屬性來使用中心作為變換的原點。

語法

new fabric.Canvas(element: HTMLElement|String, { centeredScaling: Boolean }: Object)

參數

  • # - 此參數是 em> 元素本身,可以使用Document.getElementById() 或 元素本身的id 派生。 FabricJS 畫布將在此元素上初始化。

  • 選項(可選) - 此參數是一個對象,它提供對我們的畫布進行額外的自訂。利用這個參數可以改變畫布相關的顏色、遊標、邊框寬度等很多屬性,其中centeredScaling就是一個屬性。它接受一個布林值,該值確定物件是否應使用中心點作為變換的原點。預設值為 False。

範例1

傳遞centeredScaling 鍵,值為false

讓我們看一個程式碼範例,了解當centeredScaling 設定為False 時物件如何縮放。

<!DOCTYPE html>
<html>
<head>
   <!-- Adding the Fabric JS Library-->
   <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
   <h2>Enabling centered scaling in canvas using FabricJS</h2>
   <p>Select the object and try to resize it by its corners. The object will scale non-uniformly from its center.</p>
   <canvas id="canvas"></canvas>
   <script>
      // Initiate a canvas instance
      var canvas = new fabric.Canvas("canvas", {
         centeredScaling: false
      });
      // Creating an instance of the fabric.Rect class
      var circle = new fabric.Circle({
         left: 200,
         top: 100,
         radius: 40,
         fill: "blue",
      });
      // Adding it to the canvas
      canvas.add(circle);
      canvas.setWidth(document.body.scrollWidth);
      canvas.setHeight(250);
   </script>
</body>
</html>

範例2

將centeredScaling 鍵傳遞給值為True 的類別

##預設情況下,

centeredScaling 鍵為設定為假。因此,我們需要將key傳遞給類,並賦予它一個真實的值,以使物件能夠以它們的中心作為變換的原點。

<!DOCTYPE html>
<html>
<head>
   <!-- Adding the Fabric JS Library-->
   <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
   <h2>Enabling centered scaling in canvas using FabricJS</h2>
   <p>Here we have set <b>centeredScaling</b> to True. Select the object and try to resize it by its corners. The object will scale uniformly from its center. </p>
   <canvas id="canvas"></canvas>
   <script>
      // Initiate a canvas instance
      var canvas = new fabric.Canvas("canvas", {
         centeredScaling: true
      });
      // Creating an instance of the fabric.Rect class
      var circle = new fabric.Circle({
         left: 200,
         top: 100,
         radius: 40,
         fill: "blue",
      });
      // Adding it to the canvas
      canvas.add(circle);
      canvas.setWidth(document.body.scrollWidth);
      canvas.setHeight(250);
   </script>
</body>
</html>

以上是如何使用 FabricJS 在畫布上啟用居中縮放?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除