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 flip a Triangle horizontally using FabricJS?
In this tutorial, we are going to learn how we can flip a Triangle object horizontally 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. We can flip a triangle object horizontally using the flipX property.
Syntax
new fabric.Triangle({ flipX: Boolean }: 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 flipX is a property.
Options Keys
-
flipX ? This property accepts a Boolean value which allows us to flip an object horizontally.
Example 1: Default Orientation (flipX: false)
Let's see a code example that shows us the default orientation of a triangle object in FabricJS. Since we are passing the flipX property a false value, the triangle object will not be flipped horizontally.
<!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 flipX as key with a 'False' value</h2>
<p>You can see that the triangle object has not been flipped horizontally</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: 75,
top: 45,
width: 180,
height: 109,
stroke: "#e3f988",
strokeWidth: 5,
flipX: false,
});
// Create gradient fill
triangle.set(
"fill",
new fabric.Gradient({
type: "linear",
coords: { x1: 0, y1: 0, x2: 100, y2: 0 },
colorStops: [
{ offset: 0, color: "#545a2c" },
{ offset: 1, color: "#6495ed" },
],
})
);
// Add it to the canvas
canvas.add(triangle);
</script>
</body>
</html>
Example 2: Flipped Triangle (flipX: true)
In this example, we have a triangle object of width 180px and height 109px with a horizontal linear gradient fill. As we apply the flipX property to the triangle object, it flips horizontally and thus we see that the gradient has flipped as well.
<!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 the flipX property as key with a 'True' value</h2>
<p>You can see that the triangle has been flipped horizontally</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: 75,
top: 45,
width: 180,
height: 109,
stroke: "#e3f988",
strokeWidth: 5,
flipX: true,
});
// Create gradient fill
triangle.set(
"fill",
new fabric.Gradient({
type: "linear",
coords: { x1: 0, y1: 0, x2: 100, y2: 0 },
colorStops: [
{ offset: 0, color: "#545a2c" },
{ offset: 1, color: "#6495ed" },
],
})
);
// Add it to the canvas
canvas.add(triangle);
</script>
</body>
</html>
Key Points
The flipX property accepts boolean values:
truefor horizontal flip,falsefor default orientationWhen a triangle is flipped, all its visual elements including gradients, patterns, and textures are also flipped
The flip transformation affects the visual appearance but not the positioning properties like left and top
Conclusion
The flipX property in FabricJS provides an easy way to flip triangle objects horizontally. Set it to true for horizontal flip or false for default orientation.
