In this article, we are going to see how to add a stroke dash pattern to the Polygon canvas using FabricJS. The canvas means Polygon written is movable, rotatable, resizable, and can be stretched. But in this article, we will add a stroke dash pattern. Further, the Polygon itself cannot be edited like a textbox.
To make it possible, we are going to use a JavaScript library called FabricJS. After importing the library using CDN, we will create a canvas block in the body tag which will contain our Polygon. After this, we will initialize instances of Canvas and Polygon provided by FabricJS and create a stroke using stroke property and further use the strokeDashArray property to add stroke dash pattern and render the Canvas on the Polygon as given in the below example.
Syntax:
fabric.Polygon([ { x: pixel, y: pixel }, { x: pixel, y: pixel }, { x: pixel, y: pixel}, { x: pixel, y: pixel}, { x: pixel, y: pixel }], { strokeDashArray : Array } );
Parameters: This property accepts a single value as an array mentioned above and described below:
- Array: It specifies the stroke dash pattern.
Below example illustrate the Fabric.js strokeDashArray:
Example:
HTML
<!DOCTYPE html> < html >   < head >     <!-- Loading the FabricJS library -->     < script src =     </ script > </ head >   < body >     < div style = "text-align: center;width: 600px;" >         < h1 style = "color: green;" >             neveropen         </ h1 >         < b >             Fabric.js | Polygon strokeDashArray Property         </ b >     </ div >       < canvas id = "canvas" width = "600" height = "200"          style = "border:1px solid #000000;" >     </ canvas >       < script >                   // Initiate a Canvas instance         var canvas = new fabric.Canvas("canvas");           // Initiate a polygon instance         var polygon = new fabric.Polygon([{             x: 295,             y: 10         }, {             x: 235,             y: 198         }, {             x: 385,             y: 78         }, {             x: 205,             y: 78         }, {             x: 355,             y: 198         }], {             stroke: 'green',             strokeDashArray: [10]         });           // Render the polygon in canvas         canvas.add(polygon);     </ script > </ body >   </ html > |
Output: