我們可以通過創建fabric.Polygon的實例來創建Polygon對象。多邊形對象的特征可以是由一組連接的直線段組成的任何閉合形狀。由于它是 FabricJS 的基本元素之一,我們還可以通過應用角度、不透明度等屬性輕松自定義它。
語法
new fabric.Polygon( points: Array, options: Object )
登錄后復制
參數
points – 此參數接受一個Array,它表示組成多邊形對象的點數組。
選項(可選) – 此參數是一個對象,它為我們的目的。使用此參數可以更改與 Polygon 對象相關的原點、描邊寬度和許多其他屬性。
示例 1:使用多邊形繪制六邊形
讓我們看一個代碼示例,了解如何使用多邊形繪制六邊形。我們可以繪制多種類型的六邊形,但是,在本例中我們將繪制正六邊形。我們知道正六邊形有六個相等的邊。
<!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>Drawing a Hexagon using Polygon</h2> <p>You can see a hexagon object has been added to the canvas</p> <canvas id="canvas"></canvas> <script> // Initiate a canvas instance var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); // Initiating the angle of the hexagon const a = (2 * Math.PI) / 6; // Initiating the radius of the circle const r = 50; // Initiate a polygon object var hexagon = new fabric.Polygon( [ { x: 50, y: 0 }, { x: 25, y: 43.30}, { x: -25, y: 43.301 }, { x: -50, y: 0}, { x: -25, y: -43.301}, { x: 25, y: -43.301 }, ], { stroke: "red", left: 140, top: 10, strokeWidth: 2, strokeLineJoin: "bevil", } ); // Adding it to the canvas canvas.add(hexagon); </script> </body> </html>
登錄后復制
示例2:使用Polygon繪制六邊形網格
讓我們看一個代碼示例,看看如何創建六邊形網格。我們可以簡單地啟動一個名為 drawHexagon(m,n) 的函數,其中 (m,n) 是六邊形的中心點。每當調用此函數時,都會繪制六邊形。我們還啟動 drawGrid(width, height) 函數,該函數通過計算連續六邊形的下一個中心的位置來繪制連續的六邊形。
<!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>Drawing a Hexagonal grid using Polygon</h2> <p>You can see that a hexagonal grid has been drawn</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 polygon object function drawHexagon(left, top) { var hexagon = new fabric.Polygon( [ { x: 50, y: 0 }, { x: 25, y: 43.30}, { x: -25, y: 43.301 }, { x: -50, y: 0}, { x: -25, y: -43.301}, { x: 25, y: -43.301 }, ], { stroke: "#EEC33D", fill: "#BB900C", strokeWidth: 5, left: left, top: top } ); // Adding it to the canvas canvas.add(hexagon); } // Initiating the drawGrid function function drawGrid() { for (let y = 1; y < 4; y++) { drawHexagon(80*y,45*y) } for (let y = 1; y < 4; y++) { drawHexagon(80*y+160,45*y) } for (let y = 1; y < 4; y++) { drawHexagon(80*y+320,45*y) } } // Calling drawGrid function drawGrid(); </script> </body> </html>
登錄后復制
結論
在本教程中,我們使用兩個簡單的示例來演示如何使用 FabricJS 使用 Polygon 類繪制六邊形網格。
以上就是Fabric.js – 如何使用 Polygon 類繪制六邊形網格(蜂巢)的詳細內容,更多請關注www.92cms.cn其它相關文章!