Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
How to set the horizontal scale factor of a Triangle using FabricJS?
In this tutorial, we are going to learn how to set the horizontal 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 horizontal scale of a triangle object. This can be done by using the scaleX property.
Syntax
new fabric.Triangle({ scaleX : 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 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
Let's see a code example that displays the appearance of our triangle object when the scaleX property is not used. By default, the horizontal scale factor of the triangle 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>Default appearance when scaleX is not used</h2>
<p>You can see that there is no resizing along the x-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 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 triangle 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>Passing scaleX property as key</h2>
<p>Notice that the object's horizontal width has now 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: 70,
width: 90,
height: 80,
fill: "#746cc0",
stroke: "#967bb6",
strokeWidth: 5,
scaleX: 2,
});
// Add it to the canvas
canvas.add(triangle);
</script>
</body>
</html>
Key Points
The scaleX property controls horizontal scaling only (X-axis transformation)
Default value is 1, meaning no scaling is applied
Values greater than 1 increase the width, values less than 1 decrease it
Negative values will flip the triangle horizontally
Conclusion
The scaleX property in FabricJS provides precise control over horizontal scaling of triangle objects. Use values greater than 1 to stretch the triangle wider, or less than 1 to compress it horizontally.
