gorogoronyan FC2

svg タグ: transform で図形を操作する

概略

SVG 図形を transform で変形・回転などの加工をする方法は 2つあります。
  1. HTML の CSS transform を使用する。
  2. svg タグの transform 属性 を使用する。

1) HTML の CSS で trasnform

HTML 要素 (img タグや svg タグなど) を CSS trasnform で加工します。
あらかじめ用意された svg 画像ファイルなど固定の画像に適した話です。

2) SVG の transform 属性を使う

こちらは CSS とはまったく異なる話です。 svg に関するタグ (svg タグや g タグなど) では transform 属性 を設定することができます。 この属性で svg 全体や svg 内で使用している一部のパーツ を変形したり操作したりすることができます。 こちらは固定の画像ではなく svg を使った Web アプリケーションで svg の部品を操作する話に適しています。

例: rotate で回転させる例
<svg transform="rotate(180)" ... >

transform の変換では順序依存があるので注意

transform では処理の順番を変えると 同じ結果にならない場合もあるので気をつけてください。 1) 変換 A → 変換 B と 2) 変換 B → 変換 A が同じならない場合があります。

CSS transform で SVG 図形を加工する (2023/10)

TestJS_svg_transform01.html
スライダーを操作すると SVG のグリッド線を回転させるサンプル。
こちらは svg 要素の CSS transform を操作しています。
input タグ: スライダー
CSS transform - 変形・回転など

SVG transform 属性 (2023/11)

TestSVG_arrow01.html
SVG の矢印のサンプル。 transform 属性で拡大縮小したり回転させたりする。

transform 属性を JavaScript で操作する (2023/11)

transform 属性の設定には 2つの方法があります

  1. HTML の svg 要素の setAttribute() で文字列で値をセットする。
    transform 属性の値の文字列は translate() や rotate() など多くのパラメータを持つので面倒な話になります。
  2. svg 要素から必要な transform のオブジェクトを取り出して値を設定する。
    こちらも transform のリストから適切な transform を探して取り出す (ない場合は追加する、不要なものは削除する) などの処理が必要になります。
TestJS_svg_transform03.html
スライダーで SVG 図形を移動させる。 SVG transform 属性の値を変更するサンプル。
input タグ: スライダー

関連: svg 要素の配置座標を変更して移動する (2024/01)

こちらは transform を使わない話です。 svg 要素を div などの親要素に 絶対座標 (CSS の position: absolute;) で配置し、svg の座標を変更することで svg 要素を移動させます。

関連

inserted by FC2 system