如何使用 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>

更新於: 2022年6月27日

190 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告