2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SVG 微妙に書き方に困惑したところメモ

Posted at

いつもはイラレなどで書き出してしまうところを、ちょっと中身をみて編集してみた時に困惑したのでメモ。

line、rect、polygon、circle、ellipseは、なんとなくわかったのですが、
困惑したのは、path。。。
下記の記事を参考にして理解しました。

困惑したところ

ソースをパッとみた感じ(調べる前)では、pathタグにd=でクリッカブルマップ(イメージマップ)みたいに座標みたいな数字を入れているみたいだったので、適当に数字いじってみたのですが、ぐちゃぐちゃになりました。
気になったは、MとかLとか入っていること。。。

パス描画の命令を記述

MとかLとかは命令とのこと。
参考サイトではこう書いてありました。

  • M (x y)+ : x, y に移動 (Move to)
  • L (x y)+ : x, y に線を引く (Lineto)
  • H (x)+ : 水平方向に線を引く (Horizontal lineto)
  • V (y)+ : 垂直方向に線を引く (Vertical lineto)
  • S (x1 y1 x y)+ : 制御点(x1, y1)、終点(x, y) とする二次ベジェ曲線 (Shorhand/smooth curveto)
  • C (x1 y1 x2 y2 x y)+ : 制御点1(x1, y1)、制御点2(x2, y2)、終点(x, y) とする三次ベジェ曲線 (Curveto)
  • Z : パスを閉じる (Closepath)

ここでなるほど〜と理解。
座標をただ入力するのと違い、描画を命令するということが違いであり、僕の大きな勘違いだったことを理解しました。

参考に書く

<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg">
<path d="M 5 20 L 20 5 L 35 20 L 20 35 Z" stroke="red" fill="transparent" stroke-width="4" />
</svg>

とりあえずこんな感じ
img01.png

そして、座標を入力するのとは違う点

<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg">
<path d="M 5 20 L 20 5 L 35 20 L 20 35 Z M 20 45 L 45 20 L 70 45 L 45 70 Z" stroke="red" fill="transparent" stroke-width="2" />
</svg>

スクリーンショット 2019-04-15 0.14.43.png

1つ目のソースの後に、またMで位置を指定すると、pathタグ1つで2つのオブジェクトが描ける。

まとめ

いつもイラレなどのソフトで作成していたので、さらっとやっていましたが、勉強になりました。何かに困ったら、ソースみてみるのが良いですね。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?