2017-09-25 4 views
0

私はキャンバスを使ってD3の地図上にパスをプロットしていますが(using SVG tooと思われますが)、私は線がつながっているところに小さな点ができています。これはChromeとFirefoxでのみ発生するようです。 Safariはうまくいくようです。macOSでChromeとFirefoxでD3 geoPath canvasプロットポイント成果物を減らすことはできますか?

サークルを描くときに、白い点が少しでも出ることがあります。詳細については、拡大画像を参照してください。

誰かがこれを見つけて、これらのアーティファクトを減らす方法を見つけましたか?あるいは、これはChromeとFirefoxがd3パスをレンダリングする方法です(私は通常のパスとgeoPathsに気づきました)?

パスのストロークを広げて黒い点を修正できますが、デザイナーは細いストロークを望んでいます。

d3 geopath artifacts

+2

黒い点はちょうど李を見ます私にはアンチエイリアスのアーチファクトはありません。 – david25272

+0

https://stackoverflow.com/questions/41763580/svg-rendered-into-canvas-blurred-on-retina-display/41776757の重複している可能性があります。まず、あなたのニーズに合っていれば、私が閉じることができるかどうかを '@ Kaiido'のコメントで教えてください。) – Kaiido

+1

@Kaiido no私はこれが同じ問題ではないと思います。私はこの画像を手動で拡大しており、網膜高DPI画面では表示していません。私はこのモジュールを、網膜装置の上に置いています。https://www.npmjs.com/package/canvas-dpi-scaler問題は残っていますが目立ちません。 – phocks

答えて

0

私は私がなっていた間欠的なドット「ステッチ」の修正の種類を管理していました。私がcontext.lineWidth = 1.1を作れば、暗い点が消えてしまったことに気づいた。しかし、線が暗すぎるので、context.strokeStyleをrgbaの値に設定し、alphaを0.5に設定するだけです。

ので、ここではコードです:

// Draw outline of countries 
context.beginPath(); 
context.strokeStyle = "rgba(29,60,67,0.5)"; 
context.lineWidth = 1.1; 
path(borders); 
context.stroke(); 

そして、ここでの結果です:

line width example


(注:私はまだ小さな白いドットを取得していますが、彼らは上がりません目立つように)

関連する問題