xorg1990
New member
Hi, ich beschäftige mich seit 4h mit ein Problem wo ich mich Frage warum?
Es ist so ich habe ein main Canvas 1024*768. Auf diese canvas rendere ich 3 andere canvases.
Das WasserfallCanvas, das FrequenzskalaCanvas und das DecibelCanvas (Ich nenne die jetzt mal so).
den main canvasContext habe ich über this global verfügbar gemacht.
this.canvas_ctx ist der globale Context vom haupt canvas.
Das kuriose ist das DecibelCanvas nicht zu sehen ist, die andren 2 gehen.
Die Methode wird aufgerufen. this.rotatateText rotiert die Zeichen um 90°.
Wenn ich ein Rotes Rechteck einfüge:
ctx.fillStyle = "red";
ctx.fillRect(0,0,80,this.canvas_height);
also noch vor der Schleife dann ist das Rechteck da wo es hin soll. Aber warum ist der Path nicht zu sehen und der rotierte String auch nicht??
Die For schleife funzt auch.
Wenn ich statt ctx, this.canvas_ctx neheme wird alles richtig angezeigt.
in der Konsole steht kein Fehler... alles komisch.
Weiß da einer weiter?
Es ist so ich habe ein main Canvas 1024*768. Auf diese canvas rendere ich 3 andere canvases.
Das WasserfallCanvas, das FrequenzskalaCanvas und das DecibelCanvas (Ich nenne die jetzt mal so).
den main canvasContext habe ich über this global verfügbar gemacht.
this.canvas_ctx ist der globale Context vom haupt canvas.
Das kuriose ist das DecibelCanvas nicht zu sehen ist, die andren 2 gehen.
Code:
//Renders the db gird on the canvas
Window.prototype.renderdBGrid = function(From, To){
var c = document.createElement("canvas");
var ctx = c.getContext('2d');
ctx.clearRect(beginGrid,0,gridWidth,this.canvas_height);
var beginGrid = this.canvas_width-this.beginScale+this.F_ScaleWidth;
var gridWidth = this.canvas_width-beginGrid;
c.width=gridWidth ;
c.height = this.canvas_height;
var dBs = From - To;
var lines = 0;
if (dBs<=5) lines = 10;
else if (dBs<=11) lines = 6;
else if (dBs>=11) lines = 10;
var xSpan = gridWidth/lines;
var steps = dBs/lines;
var exp = Math.floor(Math.log(steps) / Math.LN10);
var stepnorm = steps / Math.pow(10, exp);
var schritt = stepnorm* Math.pow(10, exp);
var Numr = From;
for(var i=0;i<lines;i++,Numr-=schritt){
var string = this.round(Numr*-1,1)+" dB";
var x = i*xSpan;
//Render the lines on the main canvas
ctx.beginPath();
ctx.strokeStyle="white";
ctx.moveTo(beginGrid+x, 0);
ctx.lineTo(beginGrid +x, this.canvas_height);
ctx.stroke();
if (i>=1) {
//Render the rotated text on cnavas begin in second line
ctx.drawImage(this.rotatateText(string),beginGrid+x+3,this.canvas_height-68);
}
}
this.canvas_ctx.drawImage(c,beginGrid,0);
};
Die Methode wird aufgerufen. this.rotatateText rotiert die Zeichen um 90°.
Code:
Window.prototype.rotatateText = function(txt){
var c = document.createElement("canvas");
var ctx = c.getContext('2d');
c.width = 16;
c.height = txt.length*14;
ctx.rotate(90*Math.PI/180);
ctx.font="12px Calibri";
ctx.textAlign = "left";
ctx.fillStyle="white";
ctx.fillText(txt,20,0);
return c;
};
Wenn ich ein Rotes Rechteck einfüge:
ctx.fillStyle = "red";
ctx.fillRect(0,0,80,this.canvas_height);
also noch vor der Schleife dann ist das Rechteck da wo es hin soll. Aber warum ist der Path nicht zu sehen und der rotierte String auch nicht??
Die For schleife funzt auch.
Wenn ich statt ctx, this.canvas_ctx neheme wird alles richtig angezeigt.
in der Konsole steht kein Fehler... alles komisch.
Weiß da einer weiter?