Heim  >  Artikel  >  Web-Frontend  >  Wie kann ein Polygonobjekt mit FabricJS auf Größenänderungsereignisse reagieren?

Wie kann ein Polygonobjekt mit FabricJS auf Größenänderungsereignisse reagieren?

PHPz
PHPznach vorne
2023-08-24 12:53:021358Durchsuche

如何使用 FabricJS 使多边形对象对调整大小事件做出反应?

Wir können ein Polygon-Objekt erstellen, indem wir eine Instanz von fabric.Polygon erstellen. Ein Polygonobjekt kann als jede geschlossene Form charakterisiert werden, die aus einer Reihe verbundener gerader Liniensegmente besteht. Da es eines der Grundelemente von FabricJS ist, können wir es auch einfach anpassen, indem wir Eigenschaften wie Winkel, Deckkraft usw. anwenden. Wir verwenden das Ereignis object:modified, um das Polygonobjekt auf die Größenänderung reagieren zu lassen.

Grammatik

object:modified

Beispiel 1: Standarddarstellung von Polygonobjekten

Sehen wir uns ein Codebeispiel an, um zu sehen, wie ein Polygonobjekt angezeigt wird, wenn das Ereignis „object:modified“ nicht verwendet wird. In diesem Fall wird das Polygonobjekt zur Leinwand hinzugefügt.

<!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>Default appearance of the polygon object</h2>
   <p>You can see that the polygon object has been added to the canvas</p>
   <canvas id="canvas"></canvas>
   <script>
      
      // Initiate a canvas instance
      var canvas = new fabric.Canvas("canvas");
      canvas.setWidth(document.body.scrollWidth);
      canvas.setHeight(250);
      
      // Initiate a polygon instance
      var polygon = new fabric.Polygon(
         [
            { x: 0, y: 0 },
            { x: 0, y: 50 },
            { x: 50, y: 50 },
            { x: 50, y: 0 },
         ],
         {
            left: 100,
            top: 30,
            fill: "red",
            stroke: "blue",
            strokeWidth: 2,
         }
      );
      
      // Adding it to the canvas
      canvas.add(polygon);
   </script>
</body>
</html>

Beispiel 2: Zeigen Sie, wie ein Objekt auf die Größenänderung reagiert

Sehen wir uns ein Codebeispiel an, um die protokollierte Ausgabe zu sehen, wenn die Größe eines Polygonobjekts geändert wird. Wir haben das Ereignis object:modified verwendet, das am Ende einer Objekttransformation oder einer Änderung im Zusammenhang mit dem Objekt ausgelöst wird. In diesem Fall werden jedes Mal, wenn wir die Skalierung des Objekts ändern, die skalierte Höhe und Breite in der Konsole protokolliert.

<!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>Displaying how the object reacts to being resized</h2>
   <p>
      You can scale object using corner and open console from dev tools to see that the scaled width and height value of the polygon object is being logged
   </p>
   <canvas id="canvas"></canvas>
   <script>
      
      // Initiate a canvas instance
      var canvas = new fabric.Canvas("canvas");
      canvas.setWidth(document.body.scrollWidth);
      canvas.setHeight(250);
      
      // Initiate a polygon instance
      var polygon = new fabric.Polygon(
         [
            { x: 0, y: 0 },
            { x: 0, y: 50 },
            { x: 50, y: 50 },
            { x: 50, y: 0 },
         ],
         {
            left: 100,
            top: 30,
            fill: "red",
            stroke: "blue",
            strokeWidth: 2,
         }
      );
      
      // Adding it to the canvas
      canvas.add(polygon);
      
      // Using object:modified event
      canvas.on("object:modified", (e) => {
         canvas.getActiveObjects().forEach((o) => { 
            console.log(
               "Scaled Height of the polygon is: ",
               o.getScaledHeight(),
               "Scaled Width of the polygon is:",
               o.getScaledWidth()
            );
         });
      });
   </script>
</body>
</html>

Fazit

In diesem Tutorial zeigen wir anhand von zwei einfachen Beispielen, wie man mithilfe von FabricJS dafür sorgt, dass ein Polygonobjekt auf Größenänderungsereignisse reagiert.

Das obige ist der detaillierte Inhalt vonWie kann ein Polygonobjekt mit FabricJS auf Größenänderungsereignisse reagieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen