externalResourcesRequired

Scalable Vector Graphics等,不定期

stroke-miterlimit

2006-10-09 | 仕様
stroke-miterlimitプロパティは、輪郭線の接続部の形が"miter"となる限界を指定する際に使われます。

stroke-miterlimitプロパティによって、どのくらい角が伸びたら接続部を"miter"ではなく"bevel"にするかが指定されます。
SVG Tiny 1.2では外部のCSSをサポートしていないので、stroke-miterlimitプロパティの値を指定する場合はstroke-miterlimit属性を利用します。

stroke-miterlinit属性の値はmiter長(miterによる接続において、輪郭線の内側の交点と外側を伸ばしてできた交点の間の長さ)の線幅に対する比率、もしくは"inherit"です。

例えば、
stroke-linejoin="miter" stroke-miterlimit="2"
のように書けば、stroke-miterlimit属性の付いた要素によって描かれる図形の輪郭線の接続部は、miter長の線幅に対する比率が2を超えたら"bevel"になります。

miter長(miterLength)、線幅(stroke-width)と接続される輪郭線のなす角度(theta)の関係は次の式のようになります。
miterLength / stroke-width = 1 / sin(theta / 2)
stroke-miterlimit = miterLength / stroke-width
なので、
stroke-miterlimit = 1 / sin(theta / 2)
となり、接続される輪郭線のなす角度によって"miter"で描画するのか"bevel"で描画するのかが決まります。

例えば、
stroke-linejoin="miter" stroke-miterlimit="4"
のように書けば、
4 = 1 / sin(theta / 2)
より、thetaが約29度よりも小さいときに"miter"ではなく"bevel"で描画されます。

stroke-miterlimit属性の値が1より小さな値が指定された場合は、stroke-miterlimit属性が指定されなかったものとして扱われます。

stroke-miterlimit属性がない場合は4として扱われます。すなわち、miter長の線幅に対する比率が4を超えたら"bevel"になります。