|
|
|
// -------------------- Uniboard --------------------
|
|
|
|
// Ces fonctions permettent de dessiner le graphique directement dans Uniboard.
|
|
|
|
|
|
|
|
function colorToHex(color) {
|
|
|
|
var addZero = function(myString){
|
|
|
|
if (myString.length == 1) return "0" + myString;
|
|
|
|
else return myString;
|
|
|
|
}
|
|
|
|
|
|
|
|
var digits = /(.*?)rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(color);
|
|
|
|
if (digits == null){
|
|
|
|
digits = /(.*?)rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(color);
|
|
|
|
}
|
|
|
|
if(digits == null){
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
var red = parseInt(digits[2]);
|
|
|
|
var green = parseInt(digits[3]);
|
|
|
|
var blue = parseInt(digits[4]);
|
|
|
|
var hexcode = addZero(red.toString(16)) + addZero(green.toString(16)) + addZero(blue.toString(16));
|
|
|
|
return '#' + hexcode.toUpperCase();
|
|
|
|
}
|
|
|
|
|
|
|
|
function initUniboard(){
|
|
|
|
if(!window.uniboard && window.sankore){
|
|
|
|
uniboard = sankore;
|
|
|
|
}
|
|
|
|
uniboard.centerOn(337,245);
|
|
|
|
// uniboard.setTool("pen");
|
|
|
|
|
|
|
|
// Paramètres par défaut
|
|
|
|
uniboard.lineWidth = 1;
|
|
|
|
uniboard.fillStyle = "black";
|
|
|
|
uniboard.strokeStyle = "black";
|
|
|
|
|
|
|
|
// Position du curseur pour écrire des nombres
|
|
|
|
uniboard.cursorX = 0;
|
|
|
|
uniboard.cursorY = 0;
|
|
|
|
|
|
|
|
// Fonctions
|
|
|
|
uniboard.strokeColor = function(){
|
|
|
|
this.setPenColor(colorToHex(this.strokeStyle));
|
|
|
|
};
|
|
|
|
|
|
|
|
uniboard.fillColor = function(){
|
|
|
|
this.setPenColor(colorToHex(this.fillStyle));
|
|
|
|
};
|
|
|
|
|
|
|
|
uniboard.lineTo = function(x, y){
|
|
|
|
if(y>-20 && y<affichage.hauteur+20){
|
|
|
|
this.strokeColor();
|
|
|
|
this.drawLineTo(x, y, this.lineWidth/2);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
uniboard.arc = function(x, y, r){
|
|
|
|
this.fillColor();
|
|
|
|
this.moveTo(x, y);
|
|
|
|
this.drawLineTo(x, y, r*2);
|
|
|
|
};
|
|
|
|
|
|
|
|
uniboard.clearRect = function(x, y, width, height){
|
|
|
|
if(height<0){
|
|
|
|
height = Math.abs(height);
|
|
|
|
y -= height;
|
|
|
|
}
|
|
|
|
if(width<0){
|
|
|
|
width = Math.abs(width);
|
|
|
|
x -= width;
|
|
|
|
}
|
|
|
|
this.moveTo(x, y)
|
|
|
|
this.eraseLineTo(x+width, y+height, this.lineWidth);
|
|
|
|
};
|
|
|
|
|
|
|
|
uniboard.fillRect = function(x, y, width, height){
|
|
|
|
this.fillColor();
|
|
|
|
if(height<0){
|
|
|
|
height = Math.abs(height);
|
|
|
|
y -= height;
|
|
|
|
}
|
|
|
|
if(width<0){
|
|
|
|
width = Math.abs(width);
|
|
|
|
x -= width;
|
|
|
|
}
|
|
|
|
this.moveTo(x, y)
|
|
|
|
this.drawLineTo(x+width, y+height, this.lineWidth);
|
|
|
|
};
|
|
|
|
|
|
|
|
uniboard.fillText = function(txt, x, y){
|
|
|
|
// TODO
|
|
|
|
this.fillNumber(txt, x, y);
|
|
|
|
};
|
|
|
|
|
|
|
|
uniboard.beginPath = function(){
|
|
|
|
this.moveTo(0, 0);
|
|
|
|
};
|
|
|
|
|
|
|
|
uniboard.fill = function(){};
|
|
|
|
uniboard.stroke = function(){};
|
|
|
|
|
|
|
|
uniboard.fillNumber = function(nbr, x, y){
|
|
|
|
var w = 5;
|
|
|
|
var number = "" + nbr;
|
|
|
|
|
|
|
|
if(!x || !y){
|
|
|
|
x = this.cursorX;
|
|
|
|
y = this.cursorY;
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
x += 3;
|
|
|
|
y -= 12;
|
|
|
|
}
|
|
|
|
this.moveTo(x, y);
|
|
|
|
this.fillColor();
|
|
|
|
|
|
|
|
var move = function(){
|
|
|
|
uniboard.moveTo(x, y);
|
|
|
|
};
|
|
|
|
var draw = function(){
|
|
|
|
uniboard.drawLineTo(x, y, uniboard.lineWidth)
|
|
|
|
};
|
|
|
|
var space = function(){
|
|
|
|
x += 2*w/3;
|
|
|
|
move();
|
|
|
|
};
|
|
|
|
|
|
|
|
for(var i=0; i<number.length; i++){
|
|
|
|
switch(number.charAt(i)){
|
|
|
|
case "1":
|
|
|
|
y += w
|
|
|
|
move()
|
|
|
|
x += w
|
|
|
|
y -= w
|
|
|
|
draw()
|
|
|
|
y += 2*w
|
|
|
|
draw()
|
|
|
|
y -= 2*w
|
|
|
|
space()
|
|
|
|
break;
|
|
|
|
case "2":
|
|
|
|
x += w
|
|
|
|
draw()
|
|
|
|
y += w
|
|
|
|
draw()
|
|
|
|
x -= w
|
|
|
|
draw()
|
|
|
|
y += w
|
|
|
|
draw()
|
|
|
|
x += w
|
|
|
|
draw()
|
|
|
|
y -= 2*w
|
|
|
|
space()
|
|
|
|
break;
|
|
|
|
case "3":
|
|
|
|
x += w
|
|
|
|
draw()
|
|
|
|
y += w
|
|
|
|
draw()
|
|
|
|
x -= w
|
|
|
|
draw()
|
|
|
|
x += w
|
|
|
|
move()
|
|
|
|
y += w
|
|
|
|
draw()
|
|
|
|
x -= w
|
|
|
|
draw()
|
|
|
|
y -= 2*w
|
|
|
|
x += w
|
|
|
|
space()
|
|
|
|
break;
|
|
|
|
case "4":
|
|
|
|
y += w
|
|
|
|
draw()
|
|
|
|
x += w
|
|
|
|
draw()
|
|
|
|
y -= w
|
|
|
|
draw()
|
|
|
|
y += w
|
|
|
|
move()
|
|
|
|
y += w
|
|
|
|
draw()
|
|
|
|
y -= 2*w
|
|
|
|
space()
|
|
|
|
break;
|
|
|
|
case "5":
|
|
|
|
x += w
|
|
|
|
move()
|
|
|
|
x -= w
|
|
|
|
draw()
|
|
|
|
y += w
|
|
|
|
draw()
|
|
|
|
x += w
|
|
|
|
draw()
|
|
|
|
y += w
|
|
|
|
draw()
|
|
|
|
x -= w
|
|
|
|
draw()
|
|
|
|
x += w
|
|
|
|
y -= 2*w
|
|
|
|
space()
|
|
|
|
break;
|
|
|
|
case "6":
|
|
|
|
x += w
|
|
|
|
move()
|
|
|
|
x -= w
|
|
|
|
draw()
|
|
|
|
y += w
|
|
|
|
draw()
|
|
|
|
x += w
|
|
|
|
draw()
|
|
|
|
y += w
|
|
|
|
draw()
|
|
|
|
x -= w
|
|
|
|
draw()
|
|
|
|
y -= w
|
|
|
|
draw()
|
|
|
|
x += w
|
|
|
|
y -= w
|
|
|
|
space()
|
|
|
|
break;
|
|
|
|
case "7":
|
|
|
|
x += w
|
|
|
|
draw()
|
|
|
|
x -= w/2
|
|
|
|
y += 2*w
|
|
|
|
draw()
|
|
|
|
x += w/2
|
|
|
|
y -= 2*w
|
|
|
|
space()
|
|
|
|
break;
|
|
|
|
case "8":
|
|
|
|
x += w
|
|
|
|
draw()
|
|
|
|
y += 2*w
|
|
|
|
draw()
|
|
|
|
x -= w
|
|
|
|
draw()
|
|
|
|
y -= 2*w
|
|
|
|
draw()
|
|
|
|
y += w
|
|
|
|
move()
|
|
|
|
x += w
|
|
|
|
draw()
|
|
|
|
y -= w
|
|
|
|
move()
|
|
|
|
space()
|
|
|
|
break;
|
|
|
|
case "9":
|
|
|
|
x += w
|
|
|
|
move()
|
|
|
|
x -= w
|
|
|
|
draw()
|
|
|
|
y += w
|
|
|
|
draw()
|
|
|
|
x += w
|
|
|
|
draw()
|
|
|
|
y += w
|
|
|
|
draw()
|
|
|
|
x -= w
|
|
|
|
draw()
|
|
|
|
y -= w
|
|
|
|
x += w
|
|
|
|
move()
|
|
|
|
y -= w
|
|
|
|
draw()
|
|
|
|
space()
|
|
|
|
break;
|
|
|
|
case "0":
|
|
|
|
x += w
|
|
|
|
draw()
|
|
|
|
y += 2*w
|
|
|
|
draw()
|
|
|
|
x -= w
|
|
|
|
draw()
|
|
|
|
y -= 2*w
|
|
|
|
draw()
|
|
|
|
x += w
|
|
|
|
move()
|
|
|
|
space()
|
|
|
|
break;
|
|
|
|
case "-":
|
|
|
|
y += w
|
|
|
|
move()
|
|
|
|
x += w
|
|
|
|
draw()
|
|
|
|
y -= w
|
|
|
|
move()
|
|
|
|
space()
|
|
|
|
break;
|
|
|
|
default: // Nombre inconnu
|
|
|
|
// this.showMessage("Error : "+number.charAt(i)+" isn't a number");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.cursorX = x;
|
|
|
|
this.cursorY = y;
|
|
|
|
// this.showMessage(number);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|