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 vertical scale factor of Rectangle using FabricJS?
In this tutorial, we are going to learn how to set the vertical scale factor of a Rectangle using FabricJS. Rectangle is one of the various shapes provided by FabricJS. In order to create a rectangle, we will have to create an instance of fabric.Rect class and add it to the canvas.
Just as we can specify the position, colour, opacity and dimension of a rectangle object in the canvas, we can also set the vertical scale of a rectangle object. This can be done by using the scaleY property.
Syntax
new fabric.Rect({ scaleY : Number }: Object)
Parameters
-
Options (optional) ? This parameter is an Object which provides additional customizations to our rectangle. 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 rectangle object when the scaleY property is not used. By default, the vertical scale factor of the rectangle 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 scaling 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 rectangle object
var rect = new fabric.Rect({
left: 105,
top: 70,
width: 170,
height: 70,
fill: "#dcdcdc",
stroke: "#696969",
strokeWidth: 5,
});
// Add it to the canvas
canvas.add(rect);
</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 rectangle 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 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 rectangle object
var rect = new fabric.Rect({
left: 105,
top: 70,
width: 170,
height: 70,
fill: "#dcdcdc",
stroke: "#696969",
strokeWidth: 5,
scaleY: 2,
});
// Add it to the canvas
canvas.add(rect);
</script>
</body>
</html>
How It Works
The scaleY property affects only the vertical dimension of the rectangle. When scaleY is set to 2, the rectangle appears twice as tall as its original height, while the width remains unchanged. Values less than 1 will compress the rectangle vertically, while values greater than 1 will stretch it.
Conclusion
The scaleY property in FabricJS provides an easy way to control vertical scaling of rectangle objects. By adjusting this value, you can create various visual effects and resize rectangles dynamically on the canvas.
