FabricJS を使用して角ごとにオブジェクトのサイズを不均一に変更するにはどうすればよいですか?

WBOY
リリース: 2023-08-25 10:13:07
転載
1018 人が閲覧しました

如何使用 FabricJS 通过角点非均匀地调整对象大小?

この記事では、FabricJS を使用してオブジェクトのサイズを角ごとに不均一に変更する方法を学びます。 FabricJS では、オブジェクトを角からドラッグすると、オブジェクトは比例して変形します。ただし、uniScaleKey を押すことでこの動作を制御できます。

構文

new fabric.Canvas(element: HTMLElement|String, { uniScaleKey: String }: Object)
ログイン後にコピー

パラメータ

  • 要素 - このパラメータは です 要素自体は、Document.getElementById() または 要素自体の ID を使用して派生できます。 FabricJS キャンバスはこの要素で初期化されます。

  • オプション (オプション) - このパラメータは、キャンバスの追加のカスタマイズを提供するオブジェクトです。このパラメータを使用すると、色、カーソル、境界線の幅など、キャンバスに関連する多くの属性を変更できます。uniScaleKey はその属性の 1 つです。どのキーが統合スケーリングを切り替えるかを示す文字列値を受け入れます。デフォルト値は shiftKey です。可能なキー値は次のとおりです: altKey, shiftKey と ctrlKey。

#例 1

Shift キーを押して均一スケーリングを無効にする

オブジェクトがアスペクト比を維持する場合エッジをドラッグして変形すると、オブジェクトが均一にスケーリングされると言います。 uniScaleKey を使用すると、この動作をその場で制御できます。デフォルトでは、FabricJS のオブジェクトは比例して拡大縮小します。コード例を見て、Shift キーを押したときにオブジェクトがどのように不均一に拡大縮小されるかを見てみましょう。

<!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>Resizing an object non-uniformly via corner points</h2>
   <p>Hold the <b>shift</b> key and drag the object from its corners. The object will resize non-uniformly. </p>
   <canvas id="canvas"></canvas>
   <script>
      // Initiate a canvas instance
      var canvas = new fabric.Canvas("canvas");
      // Creating an instance of the fabric.Rect class
      var circle = new fabric.Circle({
         left: 70,
         top: 90,
         radius: 40,
         fill: "#006400",
      });
      // Adding it to the canvas
      canvas.add(circle);
      canvas.setWidth(document.body.scrollWidth);
      canvas.setHeight(250);
   </script>
</body>
</html>
ログイン後にコピー
例 2

uniScaleKey の値を ctrlKey に変更します

デフォルト値は

shiftKey ですが、値を変更することもできます。 'ctrlKey' および 'altKey' も使用できます。 NULL またはその他のキーが指定された場合、この機能は無効になります。 えええええ

以上がFabricJS を使用して角ごとにオブジェクトのサイズを不均一に変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!