How to set the vertical scale factor of a Triangle using FabricJS?

In this tutorial, we are going to learn how to set the vertical scale factor of a Triangle using FabricJS. Triangle is one of the various shapes provided by FabricJS. In order to create a triangle, we will have to create an instance of fabric.Triangle class and add it to the canvas.

Just as we can specify the position, colour, opacity and dimension of a triangle object in the canvas, we can also set the vertical scale of a triangle object. This can be done by using the scaleY property.

Syntax

new fabric.Triangle({ scaleY : Number }: Object)

Parameters

  • Options (optional) ? This parameter is an Object which provides additional customizations to our triangle. Using this parameter, properties such as colour, cursor, stroke width, and a lot of other properties can be changed related to the object of which scaleY is a property.

Options Keys

  • scaleY ? This property accepts a Number value. The value that is assigned, determines the vertical object scale factor. Its default value is 1.

Example 1: Default appearance when scaleY is not used

Let's see a code example that displays the appearance of our triangle object when the scaleY property is not used. By default, the vertical scale factor of the triangle object is 1. scaleY determines the transformation that resizes an object along the Y-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>Default appearance when scaleY is not used</h2>
   <p>You can see that there is no resizing along the y-axis</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 triangle object
      var triangle = new fabric.Triangle({
         left: 105,
         top: 70,
         width: 90,
         height: 80,
         fill: "#746cc0",
         stroke: "#967bb6",
         strokeWidth: 5,
      });

      // Add it to the canvas
      canvas.add(triangle);
   </script>
</body>
</html>

Example 2: Passing scaleY property as key

In this example, we are passing the scaleY property as a key with a value of 2. This means that the triangle object's scale factor in the vertical 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>Passing scaleY property as key</h2>
   <p>You can see that the object's vertical height has been doubled</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 triangle object
      var triangle = new fabric.Triangle({
         left: 105,
         top: 30,
         width: 90,
         height: 80,
         fill: "#746cc0",
         stroke: "#967bb6",
         strokeWidth: 5,
         scaleY: 2,
      });

      // Add it to the canvas
      canvas.add(triangle);
   </script>
</body>
</html>

Key Points

  • scaleY only affects vertical scaling, not horizontal scaling
  • Values greater than 1 enlarge the triangle vertically
  • Values between 0 and 1 shrink the triangle vertically
  • The default value is 1 (no scaling)

Conclusion

The scaleY property in FabricJS provides precise control over the vertical scaling of triangle objects. By setting different values, you can stretch or compress triangles along the Y-axis while maintaining their horizontal proportions.

Updated on: 2026-03-15T23:19:00+05:30

220 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements