SVGとviewBoxの値


13

誰かがviewBox値(つまりviewBox="a b c d")がどのように決定されるかを知っているなら、私はただ興味があります。

私はInkscapeのSVG機能を理解しようとしているので、Inkscapeで100pxxのドキュメントを作成し100px、ビューポートの左側(0水平方向の値)から右側(100水平方向の値)まで線を引きます。

しかし、奇妙なことに、このドキュメントをプレーンSVGファイルとして保存し、テキストエディターでファイルを開くと、viewBox値はviewBox="0 0 26.458333 26.458334"、たとえばの代わりに設定されviewBox="0 0 100 100"ます。

これらの値(0 0 26.458333 26.458334)がどのように決定されるのか、そしてなぜそれらとビューポートの寸法との間に関係がないように見えるのか、誰もが知っていますか?

PS viewBoxドキュメントオプションでプロパティを手動で編集できることは知っていますが、Inkscapeがそれらをファンキーな値に設定する理由についてはまだ興味があります。

回答:


17

Inkscapeは、ドキュメントのデフォルトの表示単位またはユーザー単位としてmmを使用します。ユーザー単位は、SVGファイルに値を格納するために使用されます。

<svg width="100" height="100" viewBox="0 0 26.458333 26.458333">

このタグは、描画サイズを記述し100px x 100pxます。viewBox属性は、100px x 100pxに相当することを定義し26.458333 x 26.458333 user unitsます。

SVGスケールファクターはになります1px / 0.2645 user-unit。これは、ユーザーユニットに保存されているすべての値を実際の図面の寸法に変換するためにSVGレンダラーで使用できます。


この場合、Inkscapeは値を保存したいmmので、どのようにpx関連するかを知る必要がありmmます。CSS仕様は、絶対的な長さの単位は、互いに関連して固定されていることを示します。96px = 1in

これの意味は 100px = 1.041666667in = 2.645833333cm = 26.45833333mm

だからそこから26.45833333来ています。


あなたはInkscapeのは、あなたのすべての値を格納したい場合はpx、デフォルトの変更することができます表示単位ユーザー単位px文書のプロパティで([ファイル]> [文書のプロパティ]> [タブ:ページ>一般>表示単位)

  1. デフォルト、mm:

ドキュメントプロパティmm

  1. 変更:px:

ドキュメントプロパティpx

同じドキュメントをエクスポートすると、次のSVGタグが生成されます。

<svg width="100" height="100" viewBox="0 0 100 100">

現在、SVGスケール係数は1px / 1 user-unitです。

このテーマについて詳しく知りたい場合は、Inkscape Wikiに詳細な説明があります。

備考:

  • Inkscape v0.92はの関係を使用し96px/in、Inkscape v0.91以前は値を使用しました90px/in

ワオ。とても興味深い。だから、それに韻と理由がありました。あなたの知識を共有してくれてありがとう!
オールドボーイ

あなたが使ったホワイトアウトのテクニックを思い出します。私は通常のスクリーンショットの重要な部分の周りに赤い四角を入れて、あなたがあるので、非常に良く。
aaaaaa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.