2013-07-11 14 views
6

現在、私はsvgでいくつかのグラフィックスを描こうとしています、用紙サイズはA4、1ロジックユニットは1mmを表します。そこで私はビューポートを297mmx210mmに、ビューボックスを297x210に設定しました。問題は今、描画するグラフのストローク幅がもはや1ピクセルではないということです。たとえば、A4 svg図面の1ピクセルストローク幅グラフを描画します

<!DOCTYPE html> 
<html> 
<body> 
<svg width="297mm" height="210mm" viewBox='0 0 297 210' style="border: 1px solid #cccccc;"> 
    <path stroke="black" fill="none" stroke-width='1' d='M 10 10 L 60 10'/> 
    <path stroke="black" fill="none" stroke-width='1px' d='M 10 30 L 60 30'/> 
    <path stroke="black" fill="none" d='M 10 50 L 60 50'/> 
</svg> 
</body> 
</html> 

これらの3行は、ストローク幅を「1px」に設定しても、まったく同じ線幅になります。このような設定で1ピクセル幅の線を描くことは可能ですか?

+0

ストローク幅= '0.762'となりますか? – Orangepill

+1

私は紙にピクセルがあるとは思わない。画面上のスクリーンユニットを使用するか、svgを印刷して細い線が表示されるのを見てください。 – dandavis

+0

デフォルトでは1mm = 3.779527559ピクセルなので、stroke-width = '0.26458'に設定すると実際の線幅は1ピクセルになります。しかし、私はすでにストローク幅を '1px'として設定しているので、2行目のために。 1ピクセル幅で描画する必要があります。 – user2469554

答えて

8

これを試してみてください:

<path stroke="black" fill="none" stroke-width='1px' d='M 10 30 L 60 30' vector-effect="non-scaling-stroke"/> 

vector-effect="non-scaling-stroke"あなたは関係なく有効であるか、スケーリングや単位変換、指定しないで正確に何であることをストローク幅を強制的にSVG 1.2タイニー機能です。それはFFとクロム(おそらく他の人)によってサポートされていますが、残念ながらIE(これまでのところ)ではありません。あなたがそれで暮らすことができれば、それはあなたの問題に対する最も簡単な解決策です。

+0

それは素晴らしいです!ご協力いただきありがとうございます。 – user2469554

関連する問題