SVG パスには、すべてのパス コマンドに絶対と相対の 2 つの種類があります。
- 絶対パス コマンドは大文字で表記され、前のポイントに関係なく指定された座標を示します。
- 相対パス コマンドは小文字で示され、前のパス コマンドの場所を基準にして指定された座標を示します。
最後の CurveTo コマンドを除いて、すべてのパス コマンドは相対パスです。
"...44-1.436,3.662-2.155C357.073,245.799,359.609,244.566,361.839,243.057z"
仕様から:
(x1,y1) を曲線の始点の制御点として使用し、(x2,y2) を曲線の終点の制御点として使用して、現在の点から (x,y) までの 3 次ベジエ曲線を描画します。C (大文字) は、絶対座標が続くことを示します。c (小文字) は、相対座標が続くことを示します。複数の座標セットを指定して、ポリベジエを描画できます。コマンドの最後で、新しい現在の点が、ポリベジエで使用される最終的な (x,y) 座標ペアになります。
最も簡単な修正は、パスからこのコマンドを削除するだけで、明らかな違いはほとんどありません。
または、最初の MoveTo コマンドを使用してパスの場所を調整しないでください。パスをそのままにtransform()
して、新しい場所に移動します。
path_a.transform('t-200,-154');
問題のある CurveTo の前にあるコマンドの最後の座標を見つけて問題を修正し、相対値を使用するようにパラメーターを変更することは、読者の課題として残されています。