如何使用 FabricJS 在縮放時保持矩形的筆劃寬度?
<p>在本教程中,我們將學習如何在使用 FabricJS 縮放時保持矩形的筆劃寬度。預設情況下,筆劃寬度會根據物件的縮放值增加或減少。但是,我們可以使用<em>strokeUniform</em>屬性停用此行為。</p><h2>語法</h2><pre class="result notranslate">new fabric.Rect({ strokeUniform: Boolean }: Object)</pre><h2>引數</h2><ul class="list"><li><p><strong>選項(可選)</strong> − 此引數是一個物件,它為我們的矩形提供了額外的自定義。使用此引數,可以更改與物件相關的屬性,例如顏色、游標、筆劃寬度以及許多其他屬性,其中<em>strokeUniform</em>是一個屬性。</p></li></ul><h2>選項鍵</h2><ul class="list"><li><p><strong>strokeUniform</strong> − 此屬性接受一個<strong>布林</strong>值,它允許我們指定筆劃寬度是否會隨物件一起縮放。其預設值為 false。</p></li></ul><h2>示例 1</h2><p><strong>縮放物件時筆劃寬度的預設外觀</strong></p><p>讓我們看一個程式碼示例,該示例描述了正在縮放的矩形物件的筆劃寬度的預設外觀。由於我們沒有使用<em>strokeUniform</em>屬性,因此筆劃寬度也會受到物件縮放的影響。</p><pre class="demo-code notranslate language-javascript" data-lang="javascript"><!DOCTYPE html> <html> <head> <!-- 新增 Fabric JS 庫 --> <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script> </head> <body> <h2>縮放物件時筆劃寬度的預設外觀</h2> <p>嘗試縮放物件以檢視預設行為</p> <canvas id="canvas"></canvas> <script> // 初始化畫布例項 var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); // 初始化矩形物件 var rect = new fabric.Rect({ left: 55, top: 90, width: 170, height: 70, fill: "#ccccff", padding: 9, stroke: "#483d8b", strokeWidth: 5, }); // 將其新增到畫布 canvas.add(rect); </script> </body> </html></pre><h2>示例</h2><p><strong>將 strokeUniform 屬性作為鍵傳遞</strong></p><p>在此示例中,我們將 strokeUniform 屬性作為鍵傳遞,並將 true 作為值。因此,物件的筆劃將不再根據物件的縮放增加或減少,這將確保筆劃始終與為筆劃寬度輸入的精確畫素大小匹配。</p><pre class="demo-code notranslate language-javascript" data-lang="javascript"><!DOCTYPE html> <html> <head> <!-- 新增 Fabric JS 庫 --> <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script> </head> <body> <h2>將 strokeUniform 屬性作為鍵傳遞</h2> <p>嘗試縮放物件以檢視筆劃如何保持統一寬度</p> <canvas id="canvas"></canvas> <script> // 初始化畫布例項 var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); // 初始化矩形物件 var rect = new fabric.Rect({ left: 55, top: 90, width: 170, height: 70, fill: "#ccccff", padding: 9, stroke: "#483d8b", strokeWidth: 5, strokeUniform: true, }); // 將其新增到畫布 canvas.add(rect); </script> </body> </html></pre>