How to set the horizontal scale factor of Ellipse using FabricJS?


In this tutorial, we are going to learn how to set the horizontal scale factor of an Ellipse using FabricJS. Ellipse is one of the various shapes provided by FabricJS. In order to create an ellipse, we will have to create an instance of fabric.Ellipse class and add it to the canvas. Just as we can specify the position, color, opacity and dimension of an ellipse object in the canvas, we can also set the horizontal scale of an ellipse object. This can be done by using the scaleX property.

Syntax

new fabric.Ellipse({ scaleX : Number }: Object)

Parameters

  • options (optional) − This parameter is an Object which provides additional customizations to our ellipse. Using this parameter color, cursor, stroke width and a lot of other properties can be changed related to the object of which scaleX is a property.

Options Keys

  • scaleX − This property accepts a Number value. The value that is assigned, determines the horizontal object scale factor. Its default value is 1.

Example 1

Default appearance when scaleX is not used

The following code will show how the ellipse object would appear when the scaleX property is not used. By default, the horizontal scale factor of the ellipse object is 1. scaleX determines the transformation that resizes an object along the X-axis.

<!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>How to set the horizontal scale factor of Ellipse using FabricJS?</h2>
      <p>By default, the horizontal scale factor is 1. Here we haven't used the <b>scaleX</b> property.</p>
      <canvas id="canvas"></canvas>

      <script>
         // Initiate a canvas instance
         var canvas = new fabric.Canvas("canvas");
   
         // Initiate an ellipse instance
         var ellipse = new fabric.Ellipse({
         left: 115,
         top: 50,
         rx: 80,
         ry: 50,
         fill: "#ff1493",
         });

         // Adding it to the canvas
         canvas.add(ellipse);
         canvas.setWidth(document.body.scrollWidth);
         canvas.setHeight(250);
      </script>
   </body>
</html>

Example 2

Passing scaleX property as key

In this example, we are passing the scaleX property as a key with a value of 2. This means that the ellipse object's scale factor in the horizontal direction is doubled.

<!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>How to set the horizontal scale factor of Ellipse using FabricJS?</h2>
      <p>Observe that the horizontal scale factor of the ellipse is doubled due to <b>scaleX</b>. </p>
      <canvas id="canvas"></canvas>

      <script>
         // Initiate a canvas instance
         var canvas = new fabric.Canvas("canvas");

         // Initiate an ellipse instance
         var ellipse = new fabric.Ellipse({
            left: 115,
            top: 50,
            rx: 80,
            ry: 50,
            fill: "#ff1493",
            scaleX: 2,
         });

         // Adding it to the canvas
         canvas.add(ellipse);
         canvas.setWidth(document.body.scrollWidth);
         canvas.setHeight(250);
      </script>
   </body>
</html>

Updated on: 25-May-2022

89 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements