123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- // Propriétés
- var canvas = document.querySelector('#canvas');
- var context = canvas.getContext('2d');
- var wSize = 800;
- var hSize = 600;
- context.font = "bold 22pt Calibri,Geneva,Arial";
- // Variables
- var dimFocus = 15;
- var mouseX = 0, mouseY = 0, mouseClic = false; // Mouse state
- var baliseXArray = new Array(), baliseYArray = new Array(), baliseArrayLenght = 0;
- // Fonctions
- function clear() {
- context.fillStyle = "black";
- context.fillRect(0, 0, wSize, hSize);
- }
- function drawPic(x, y) {
- context.strokeStyle = "rgb(23, 145, 167)";
- context.beginPath();
- context.moveTo(x, y);// 1er point
- context.lineTo(x+25, y-25);// 2e point
- context.lineTo(x+25, y-50);// 3e
- context.lineTo(x-25, y-50);// 4e
- context.lineTo(x-25, y-25);// 5e
- context.closePath();
- context.stroke();
- }
- function drawFocus(x, y) {
- context.strokeStyle = "rgb(123, 45, 167)";
- context.lineWidth = "5";
- context.beginPath();
- context.moveTo(0, 0);
- context.lineTo(x-dimFocus, y-dimFocus);
- context.moveTo(wSize, 0);
- context.lineTo(x+dimFocus, y-dimFocus);
- context.moveTo(wSize, hSize);
- context.lineTo(x+dimFocus, y+dimFocus);
- context.moveTo(0, hSize);
- context.lineTo(x-dimFocus, y+dimFocus);
- context.stroke();
- }
- function drawText(x, y, text) {
- context.fillStyle = "#fff";
- context.fillText(text, x, y);
- }
- // Gestion des évènements
- // Souris
- document.addEventListener('mousemove', function(e) {
- mouseX = e.clientX;
- mouseY = e.clientY;
- }, false);
- document.addEventListener('mousedown', function(e) {
- mouseClic = true;
- }, false);
- document.addEventListener('mouseup', function(e) {
- mouseClic = false;
- baliseXArray.push(mouseX);
- baliseYArray.push(mouseY);
- }, false);
- // Smartphone
- document.addEventListener('touchstart', function(e) {
- drawPic(200, 100);
- }, false);
- // Main
- function mainLoop() {
- //Nettoyage
- clear();
- //Curseurs
- drawFocus(mouseX, mouseY);
- //Placement balise en cours
- if (mouseClic) {
- drawPic(mouseX, mouseY);
- }
- //Affichage de toutes les balises
- baliseArrayLenght = baliseXArray.length;
- for (var i = 0; i < baliseArrayLenght; i++) {
- drawPic(baliseXArray[i], baliseYArray[i]);
- }
- //Affichage effectif
- drawText(2, 24, baliseArrayLenght + " balises");
- }
- //Loop
- setInterval(mainLoop, 20);
|