From be78b14ad370572587797cdc9b084bbdda437464 Mon Sep 17 00:00:00 2001 From: Annie Rheaume Date: Sat, 13 Jan 2024 16:30:01 -0500 Subject: [PATCH] Initial files for project --- src/index.html | 221 +++++++++++++++++++++++++++++++++++++++++++++++++ src/logo.jpg | Bin 0 -> 80704 bytes src/main.js | 89 ++++++++++++++++++++ src/tp1.js | 206 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 516 insertions(+) create mode 100644 src/index.html create mode 100644 src/logo.jpg create mode 100644 src/main.js create mode 100644 src/tp1.js diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..4d37c3d --- /dev/null +++ b/src/index.html @@ -0,0 +1,221 @@ + + + + + + + Dessin d'Enfants + + + + + + + + + +
+
+
+ +
+
+
+ + +
+
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ + +
+
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ + +
+
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ + +
+
+ + + + + + + + + + + +
IdDescriptionActions
+
+
+ + +
+
+ +
+
+ + + + \ No newline at end of file diff --git a/src/logo.jpg b/src/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..71a558a364557e7970759d7fc5561f62239a1509 GIT binary patch literal 80704 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 eZYDeTD`*(wcjMm_w!C?$YZ9W$(5Zvp^Lvy++t literal 0 HcmV?d00001 diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..9407b9d --- /dev/null +++ b/src/main.js @@ -0,0 +1,89 @@ + +import {drawCircles, populateTable, Circle, Point, randomColor} from "./tp1.js"; + +const circles = [] + +function getCircleById(circleId){ + for(const circle of circles){ + if(circle.getId() === circleId){ + return circle; + } + } +} + +function onClickUp(circleId){ + const circle = getCircleById(circleId); + const center = circle.getCenter(); + const newCenter = new Point(center.getX(), center.getY() - 10); + circle.setCenter(newCenter); + renderCircles(); +} + +function onClickDown(circleId){ + const circle = getCircleById(circleId); + const center = circle.getCenter(); + const newCenter = new Point(center.getX(), center.getY() + 10); + circle.setCenter(newCenter); + renderCircles(); +} + +function onClickLeft(circleId){ + const circle = getCircleById(circleId); + const center = circle.getCenter(); + const newCenter = new Point(center.getX() - 10, center.getY()); + circle.setCenter(newCenter); + renderCircles(); +} + +function onClickRight(circleId){ + const circle = getCircleById(circleId); + const center = circle.getCenter(); + const newCenter = new Point(center.getX() + 10, center.getY()); + circle.setCenter(newCenter); + renderCircles(); +} + + + +function onClickPaint(circleId){ + const circle = getCircleById(circleId); + circle.setColor(randomColor(Date.now())) + renderCircles(); +} + +function pointToString(point){ + return `(${point.getX()}, ${point.getY()})`; +} + +function drawNewCircle(){ + const x = parseInt(document.getElementById("cx").value) + const y = parseInt(document.getElementById("cy").value) + const r = parseInt(document.getElementById("cr").value) + const p = new Point(x, y); + const circle = new Circle(p, r, Date.now()); + circles.push(circle); + renderCircles(); +} + +function clearCircles(){ + circles.length = 0; + renderCircles(); +} + + +function renderCircles(){ + drawCircles(document.getElementById("canvas"), circles); + populateTable(document.getElementById("table-body"), + circles, + onClickUp, + onClickDown, + onClickLeft, + onClickRight, + onClickPaint); +} + + + +document.getElementById("draw-circle").addEventListener("click", drawNewCircle); +document.getElementById("clear-drawing").addEventListener("click", clearCircles); + diff --git a/src/tp1.js b/src/tp1.js new file mode 100644 index 0000000..e5c99f5 --- /dev/null +++ b/src/tp1.js @@ -0,0 +1,206 @@ +import m from "https://esm.sh/mithril@2.2.2" + +const BLACK = "000000"; +/** + * Classe qui représente un point sur + * un plan cartésien. Le point est donc + * représenté par deux coordonnées x et y. + */ +export class Point{ + #x; + #y; + constructor(x, y) { + this.#x = x; + this.#y = y; + } + getX(){ + return this.#x; + } + + getY(){ + return this.#y; + } +} + +/** + * Classe qui représente un cercle. Le cercle est + * définit par un Point et un rayon. + * + * Par défaut, le cercle est noir. Mais le cercle peut + * changer de couleur. + */ +export class Circle{ + #center; + #radius; + #color; + #id; + + /** + * + * @param {Point} center le point au centre du cercle + * @param {number} radius le rayon du cercle + * @param {number} id l'id unique du cercle. C'est au + * créateur de l'instance de s'assurer de l'unicité + * de l'id. + */ + constructor(center, radius, id) { + this.#center = center; + this.#radius = radius; + this.#color = BLACK; + this.#id = id; + } + + /** + * @returns {Point} le point au centre au cercle + */ + getCenter(){ + return this.#center; + } + + /** + * + * @returns {number} le rayon du cercle + */ + getRadius(){ + return this.#radius; + } + + /** + * + * @returns {string} la couleur (hexadécimal) du cercle + */ + getColor(){ + return this.#color; + } + + /** + * @param {String} color la nouvelle couleur du cercle + */ + setColor(color){ + this.#color = color; + } + + setCenter(center){ + this.#center = center; + } + + /** + * @returns {number} l'id du cercle + */ + getId(){ + return this.#id; + } + + + toString(){ + return `Cercle(${ this.#radius }, ${ this.getCenter().getX() }, ${ this.getCenter().getY() })`; + } +} + +/** + * Dessine tous les cercles dans un svg. Cette fonction + * nettoye le svg avant d'ajouter les cercles. + * + * @param node {HTMLElement} un element svg + * @param circles {Circle[]} Les cercles à dessiner + */ +export function drawCircles(node, circles){ + let svgCircles = []; + for(const circle of circles){ + const attr = { + cx: circle.getCenter().getX(), + cy: circle.getCenter().getY(), + r: circle.getRadius(), + fill: `#${circle.getColor()}`, + + }; + svgCircles.push(m("circle", attr)) + } + m.render(node, svgCircles); +} + +function identity(x){ + return x; +} + +function functionOrDefault(fn){ + if(typeof fn === 'function'){ + return fn; + } + return identity; +} + +function drawIcons(circle, + onClickUp, + onClickDown, + onClickLeft, + onClickRight, + onClickPaint){ + return [ + m("i.fa-solid.fa-arrow-up.is-clickable", {onclick: () => onClickUp(circle.getId())}), + m("i.fa-solid.fa-arrow-down.is-clickable", {onclick: () => onClickDown(circle.getId())}), + m("i.fa-solid.fa-arrow-left.is-clickable", {onclick: () => onClickLeft(circle.getId())}), + m("i.fa-solid.fa-arrow-right.is-clickable", {onclick: () => onClickRight(circle.getId())}), + m("i.fa-solid.fa-paint-roller.is-clickable", {onclick: () => onClickPaint(circle.getId())}), + ] +} + +/** + * @param node {HTMLElement} un element tbody + * @param circles {Circle[]} Les cercles + * @param pointToString Argument optionnel qui doit être une fonction + * qui prend en paramêtre un Point et retourne un String qui + * représente le point. + * @param onClickUp Argument optionnel qui doit être une fonction + * qui sera appelée lorsque la flèche pointant vers le haut + * sera cliquée. L'id du cercle sera passé en argument de + * la fonction. + * @param onClickDown Argument optionnel qui doit être une fonction + * qui sera appelée lorsque la flèche pointant vers le bas + * sera cliquée. L'id du cercle sera passé en argument de + * la fonction. + * @param onClickLeft Argument optionnel qui doit être une fonction + * qui sera appelée lorsque la flèche pointant vers la gauche + * sera cliquée. L'id du cercle sera passé en argument de + * la fonction. + * @param onClickRight Argument optionnel qui doit être une fonction + * qui sera appelée lorsque la flèche pointant vers la droite + * sera cliquée. L'id du cercle sera passé en argument de + * la fonction. + * @param onClickPaint Argument optionnel qui doit être une fonction + * qui sera appelée lorsque l'icone peinture + * sera cliquée. L'id du cercle sera passé en argument de + * la fonction. + */ +export function populateTable(node, + circles, + onClickUp=undefined, + onClickDown=undefined, + onClickLeft=undefined, + onClickRight=undefined, + onClickPaint=undefined){ + const rows = []; + for(const circle of circles){ + const row =[m("td", circle.getId()), + m("td", circle.toString()), + m("td", drawIcons(circle, + functionOrDefault(onClickUp), + functionOrDefault(onClickDown), + functionOrDefault(onClickLeft), + functionOrDefault(onClickRight), + functionOrDefault(onClickPaint)))]; + rows.push(m("tr", row)) + } + m.render(node, rows); + +} + +/** + * Retourne une couleur de gris aléatoire à partir d'un nombre entier. + * @param i {number} (entier) qui sera utilisé comme "seed". + * @returns {string} une couleur hexadécimale + */ +export function randomColor(i){ + const base = (i % 256).toString(16); + return `${base}${base}${base}` +} \ No newline at end of file