From cf854af104161ab58fba6e3984de42d528575b0c Mon Sep 17 00:00:00 2001 From: Wellington Gabriel Vicente de Souza <wellingtongabrielvs@gmail.com> Date: Sat, 31 Mar 2018 16:27:59 -0300 Subject: [PATCH] [T3] add polygon functions --- T3/canvas.css | 11 ++++++++++ T3/lines.html | 8 ++++++- T3/lines.js | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 1 deletion(-) diff --git a/T3/canvas.css b/T3/canvas.css index bf737a4..cb27467 100644 --- a/T3/canvas.css +++ b/T3/canvas.css @@ -11,4 +11,15 @@ canvas { display:block; height: 100%; width: 100%; +} + +div { + position: absolute; + left: 10px; + top: 10px; + width: 300px; +} + +#number { + width: 50px; } \ No newline at end of file diff --git a/T3/lines.html b/T3/lines.html index b837a56..4e989f4 100644 --- a/T3/lines.html +++ b/T3/lines.html @@ -8,7 +8,13 @@ <canvas id="canvas"> Your browser does not support the HTML5 canvas tag. </canvas> - <p>asdsadsa</p> + <div> + <h3> Gerador de PolÃgonos </h3> + Informe um número de 3 a 8: + <input type="number" id="number" step="1" min="3" max="8" value="3" required/> + <input type="submit" onclick="generatePolygon()" value="Gerar"/> + <span class="validity"></span> + </div> </body> <script type="text/javascript" src="lines.js"></script> diff --git a/T3/lines.js b/T3/lines.js index 8271b91..56131a2 100644 --- a/T3/lines.js +++ b/T3/lines.js @@ -155,6 +155,66 @@ function handleMouse() { } } +function generatePolygon() { + edges = parseInt(document.getElementById("number").value,10); + if (edges >= 3 && edges <= 8) { + lines = []; + switch (edges) { + case 3: + lines = [new Line(centerX,centerY-300,centerX+300,centerY+300), //linha \ + new Line(centerX,centerY-300,centerX-300,centerY+300), //linha / + new Line(centerX-300,centerY+300,centerX+300,centerY+300)]; //linha _ + break; + case 4: + lines = [new Line(centerX-300,200,centerX+300,200), //linha _ topo + new Line(centerX+300,200,centerX+300,800), //linha | direita + new Line(centerX-300,200,centerX-300,800), //linha | esquerda + new Line(centerX-300,800,centerX+300,800)]; //linha _ baixo + break; + case 5: + lines = [new Line(centerX,centerY-350,centerX+300,centerY-150), //linha \ direita + new Line(centerX,centerY-350,centerX-300,centerY-150), //linha / esquerda + new Line(centerX+300,centerY-150,centerX+215,centerY+200), //linha \ esquerda + new Line(centerX-300,centerY-150,centerX-215,centerY+200), //linha / direita + new Line(centerX-215,centerY+200,centerX+215,centerY+200)]; //linha _ baixo + break; + case 6: + lines = [new Line(centerX-200,200,centerX+200,200), //linha _ topo + new Line(centerX-200,200,centerX-400,550), //linha / esq + new Line(centerX-400,550,centerX-200,900), //linha \ esq + new Line(centerX+200,200,centerX+400,550), //linha / dir + new Line(centerX+400,550,centerX+200,900), //linha \ dir + new Line(centerX-200,900,centerX+200,900)]; //linha _ baixo + break; + case 7: + lines = [new Line(centerX-250,300,centerX,200), //linha / topo + new Line(centerX,200,centerX+250,300), //linha / topo + new Line(centerX-250,300,centerX-350,630), //linha / esq + new Line(centerX+250,300,centerX+350,630), //linha \ dir + new Line(centerX-350,630,centerX-170,900), //linha \ esq + new Line(centerX+350,630,centerX+170,900), //linha / dir + new Line(centerX-170,900,centerX+170,900)]; //linha _ baixo + break; + case 8: + lines = [new Line(centerX-220,100,centerX+220,100), //linha _ topo + new Line(centerX-220,100,centerX-420,375), //linha / esq + new Line(centerX-420,375,centerX-420,650), //linha | esq + new Line(centerX-420,650,centerX-220,925), //linha \ esq + new Line(centerX+220,100,centerX+420,375), //linha / esq + new Line(centerX+420,375,centerX+420,650), //linha | esq + new Line(centerX+420,650,centerX+220,925), //linha \ esq + new Line(centerX-220,925,centerX+220,925)]; //linha _ baixo + break; + default: + break; + } + drawCurrentCanvas(); + } else { + console.log("Valor inválido."); + alert("Valor inválido! O número de arestas deve estar no intervalo de [3..8].") + } +} + //function that updates screen function drawCurrentCanvas() { drawLines(); -- GitLab