drawnRows = Math.floor(scrolledTop/cellSize);
heatMap.fillStyle = "#FFFFFF";
- heatMap.fillRect(0,0,1500,topOffset);
- heatMap.fillRect(0,0,leftOffset,1000);
- heatMap.fillRect(1029,0,1100,500);
+ heatMap.fillRect(0,0,1100,500);
// heatMap.fillRect(maxCols*cellSize+leftOffset,0,1500-(maxCols*cellSize+leftOffset),1000);
// heatMap.fillRect(0,maxRows*cellSize+topOffset,1500,1000-(maxRows*cellSize+topOffset));
startXCell = Math.floor(scrolledLeft/cellSize);
</canvas> </div>
<div id="scrollDiv" style="overflow: auto; float: left; height: 515px; width: 15px;" onscroll="drawMap();">
-<canvas id="nothing" width="1" height="<?php echo 250 + sizeof($genes)*25 ?>"> </canvas>
+<canvas id="nothing" width="1" height="<?php echo 250 + sizeof($genes)*15 ?>"> </canvas>
</div>
var topOffset = 210;
var leftOffset = 85;
-var cellSize = 15;
+var cellSize = 15; //NOTE if this is changed, the size of the canvasDiv must also be changed by the same factor!
var maxRows = Math.floor((500-topOffset)/cellSize);
var maxCols = Math.floor((1000-leftOffset)/cellSize);
ontMap.fillStyle = "#FFFFFF";
ontMap.fillRect(0,0,1100,500);
+
startXCell = Math.floor(scrolledLeft/cellSize);
startYCell = Math.floor(scrolledTop/cellSize);
- for(var c=startXCell; (c<cellData.length) && ((c-startYCell)<maxRows); c++) {
- for(var s=startXCell; (s<termCount) && ((s-startXCell)<maxCols); s++) {
- var redcolor = "00";
- var bluecolor = "00";
- var greencolor = "00";
+ for(var s=startXCell; (s<termCount) && ((s-startXCell)<maxCols); s++) {
+ var changed=true;
+ for(var c=startYCell; (c<geneCount) && ((c-startYCell)<maxRows); c++) {
+ if(changed && cellData[c][s] != 0) {
+ redcolor = "00";
+ var greenfrequency = Math.floor((s / termCount) * 255);
+ greencolor = greenfrequency.toString(16);
+ var bluefrequency = 255 - greenfrequency;
+ bluecolor = bluefrequency.toString(16);
+ if(redcolor.length < 2) {
+ redcolor = "0" + redcolor;
+ }
+ if(bluecolor.length < 2) {
+ bluecolor = "0" + bluecolor;
+ }
+ if(greencolor.length < 2) {
+ greencolor = "0" + greencolor;
+ }
+ changed=false;
+ ontMap.fillStyle= "#" + redcolor + greencolor + bluecolor;
+ }
if(cellData[c][s] == 0) {
redcolor = "FF";
greencolor = "FF";
bluecolor = "FF";
+ changed=true;
+ ontMap.fillStyle= "#" + redcolor + greencolor + bluecolor;
}
- else {
- var redfrequency = Math.floor((s / termCount) * 255);
- redcolor = redfrequency.toString(16);
- var bluefrequency = 255 - redfrequency;
- bluecolor = bluefrequency.toString(16);
- var greenfrequency = redfrequency;
- greencolor = greenfrequency.toString(16);
- }
- if(redcolor.length < 2) {
- redcolor = "0" + redcolor;
- }
- if(bluecolor.length < 2) {
- bluecolor = "0" + bluecolor;
- }
- if(greencolor.length < 2) {
- greencolor = "0" + greencolor;
- }
var xCoord = leftOffset+(s-startXCell+.5)*cellSize;
var yCoord = topOffset+(c-startYCell)*cellSize;
- alert(startYCell);
- ontMap.fillStyle= "#" + redcolor + greencolor + bluecolor;
ontMap.fillRect(xCoord, yCoord, cellSize, cellSize);
- ontMap.fillStyle= "#FFFFFF";
- ontMap.strokeRect(xCoord-borderWidth/2, yCoord-borderWidth/2,cellSize,cellSize);
}
}
drawTerms(startXCell);