2015-08-17 90 views
-1

我想畫一些使用JavaScript和畫布的小圖表。我的畫布畫像素線

我正在做一個類似的東西:

RadarChart.prototype.fillRadar = function() { 
var nbLabel = this.data.labels.length; 
this.context.save(); 
this.context.lineWidth = 0.5; 
this.context.lineJoin = "round"; 
this.context.translate(this.canvas.width/2, this.canvas.height/2); 
this.context.strokeStyle = this.data.lineColor; 
for (var i = 0; i < nbLabel; i++) { 
    this.context.moveTo(0, 0); 
    this.context.lineTo(0, -((this.canvas.height/2) - 30)) 
    this.context.stroke(); 
    this.context.rotate((Math.PI/180) * (360/nbLabel)); 
} 
this.context.restore(); 
} 

的問題是,我的臺詞是這樣的像素化和不完美。它們的寬度似乎改變了。這就像它隨着時間的推移淡出......

http://i.imgur.com/MVhHEru.png

爲什麼這樣做?我該如何解決它?

感謝您的幫助。

+0

爲什麼你使用'rotate'方法?爲什麼不直接計算所有終點並畫線(光線)? – hindmost

+0

如果在任何位圖圖像上放大4倍,則它將變爲像素化。畫布不是SVG。 – ericjbasti

+0

@ericjbasti我沒有放大。我在100%,我只是畫線。 – Bobby

回答

3

不要使用CSS

使用 canvas.width = 500; canvas.height = 500;

未設置畫布的寬度/高度作出這樣的發現功能屏幕20%的像素多少錢的,然後設置寬度/代碼中的高度。