2011-08-17 3 views
5

私はSVG Tiny 1.1を実装していますが、私は「ユーザユニット」の概念を理解することができません。SVG 1.1:「ユーザユニット」とは何ですか?ユーザユニットを絶対単位(例:ミリメートル)に変換する方法は?

SVG 1.1仕様では、指定された単位( "mm"、 "cm"、 "pt"など)を指定しないで<の長さがすべて>と定義されています。

インターフェイス「SVGLength」を実装しているときに、長さの値に関連する4つの属性があります。 value,unityType,valueInSpecifiedUnit,valueAsString。最後の3つの属性は私にとっては十分明確です。

  1. valueInSpecifiedUnitは、ユニットタイプunitTypeです。
  2. valueAsStringは、valueInSpecifiedUnit + unitTypeの文字列値と同じです。たとえば、「10mm」

ただし、属性の値はユーザー単位であると言われています。だから私の質問は:

  1. 「ユーザユニット」とは何ですか?
  2. "ユーザー単位"から "絶対単位"(ミリメートル(mm)など)に変換する方法はありますか?

よろしく、

答えて

7

スペックsays

ユーザ単位

A ユーザ単位で表した座標値または長さ、現在のユーザーの座標値または長さを表します。座標 システム。したがって、10ユーザユニットは、現在のユーザ座標系の ユニットでは10ユニットの長さを表す。

また

「幅」または「高さ」は、最も外側のSVG要素の属性場合には、ユーザ単位 (すなわち、ユニット識別子が提供されていない)、その値が想定されています等価的には

「PX」単位の数が同じにユーザ単位は、最も外側のSVG要素の幅で指定されたユニットであり、高さ属性、およびそれらが指定されていない場合、ユーザ単位が画素であることを意味します。

Read the section on units in SVG

+4

"user unit"は、最も外側のsvg要素の幅と高さの属性で定義されています。 例: ユーザー単位は「cm」です。 ユーザー単位は「px」です。 これは正しいですか? –

+0

そして、ピクセルとmmの間に暗黙の変換がありますか? SVG文書で使用されているDPIの一部が表示されていますか?たとえ私たちがベクトルを話しているとしても、 "解決策"は話す。 – Ideogram

+1

@DavidAndreolettiいいえ、ユーザーユニットは常に1つの 'px'に等しくなります。仕様通り:「1つのpx単位は1つのユーザー単位に等しいと定義されています。他の単位は 'px'のサイズに対して相対的にスケーリングされます。すなわち、' 1mm'は常に '3.543307px'に等しく、ちょうど' 3.543307'に等しくなります。 – Feuermurmel

関連する問題