Sfoglia il codice sorgente

ponto e circunferencia

Victor Luiz Domingues 5 anni fa
parent
commit
5996c0770f
2 ha cambiato i file con 94 aggiunte e 59 eliminazioni
  1. 48 21
      app/components/circumference.js
  2. 46 38
      app/components/point.js

+ 48 - 21
app/components/circumference.js

@@ -22,35 +22,61 @@ var circunference = (function() {
       state = states[1];
       app.setStatus("Selecione o raio da Circunferência");
     } else if (state == states[1]) {
-      var layer = app.currentLayer();
       var pos = app.pos();
       coordinates[2] = pos.x;
       coordinates[3] = pos.y;
       var legA = coordinates[2] - coordinates[0];
-      legB = coordinates[1] - coordinates[3];
-      var radius = Math.sqrt(Math.pow(legA, 2)) + Math.sqrt(Math.pow(legB, 2));
+      legB = coordinates[3] - coordinates[1];
+      var radius = Math.sqrt(Math.pow(legA, 2) + Math.pow(legB, 2));
       points = [coordinates[0], coordinates[1], radius];
       var p = points.slice();
-      var circle = new Konva.Circle({
-        x: p[0],
-        y: p[1],
-        radius: p[2],
-        fill: "transparent",
-        stroke: "black",
-        strokeWidth: 1,
-        strokeScaleEnabled: false,
-        draggable: true
-      });
-
-      layer.add(circle);
-      app.stage.draw();
-
-      clearState();
-      app.clearSelectedTool();
-      app.setStatus("");
+      drawCircunference(p[0], p[1], p[2]);
     }
   }
 
+  function drawCircunference(x, y, radius) {
+    var layer = app.currentLayer();
+    var group = new Konva.Group({
+      draggable: true,
+      resizeEnabled: false
+    });
+
+    var circle = new Konva.Circle({
+      x: x,
+      y: y,
+      radius: radius,
+      fill: "transparent",
+      stroke: "black",
+      strokeWidth: 1,
+      strokeScaleEnabled: false,
+      transformEnabled: true,
+      draggable: false
+    });
+
+    var point = new Konva.Circle({
+      x: x,
+      y: y,
+      radius: 5,
+      fill: "#42f572",
+      stroke: "#33a351",
+      strokeWidth: 1,
+      strokeScaleEnabled: false,
+      draggable: false,
+      resizeEnabled: false,
+      transformEnabled: false
+    });
+
+    group.add(circle);
+    group.add(point);
+
+    layer.add(group);
+    app.stage.draw();
+
+    clearState();
+    app.clearSelectedTool();
+    app.setStatus("");
+  }
+
   function bootstrap() {
     app.tools.push(tool);
   }
@@ -77,7 +103,8 @@ var circunference = (function() {
     click: click,
     draw: draw,
     points: points,
-    coordinates: coordinates
+    coordinates: coordinates,
+    drawCircunference: drawCircunference
   };
 
   bootstrap();

+ 46 - 38
app/components/point.js

@@ -45,48 +45,11 @@ var point = (function() {
       state = states[0];
       app.setStatus("Selecione o centro do Ponto");
     } else if (state == states[0]) {
-      var layer = app.currentLayer();
       var pos = app.pos();
       points[0] = pos.x;
       points[1] = pos.y;
       var p = points.slice();
-      var label = labels[usedLabels.length];
-      usedLabels.push(label);
-      var group = new Konva.Group({
-        draggable: true,
-        resizeEnabled: false
-      });
-      var circle = new Konva.Circle({
-        x: p[0],
-        y: p[1],
-        radius: 5,
-        fill: "#42f572",
-        stroke: "#33a351",
-        strokeWidth: 1,
-        strokeScaleEnabled: false,
-        draggable: false,
-        resizeEnabled: false,
-        transformEnabled: false
-      });
-      var text = new Konva.Text({
-        x: p[0] + 10,
-        y: p[1] - 10,
-        text: label.toUpperCase(),
-        fontSize: 12,
-        fontFamily: "Calibri",
-        fill: "#434a45",
-        draggable: false,
-        resizeEnabled: false,
-        transformEnabled: false
-      });
-      group.add(circle);
-      group.add(text);
-      layer.add(group);
-      app.stage.draw();
-
-      clearState();
-      app.clearSelectedTool();
-      app.setStatus("");
+      var po = drawPoint(p[0], p[1], true);
     }
   }
 
@@ -94,6 +57,51 @@ var point = (function() {
     app.tools.push(tool);
   }
 
+  function drawPoint(x, y, useLabel) {
+    var label = labels[usedLabels.length];
+    usedLabels.push(label);
+
+    var layer = app.currentLayer();
+    var group = new Konva.Group({
+      draggable: true,
+      resizeEnabled: false
+    });
+
+    var circle = new Konva.Circle({
+      x: x,
+      y: y,
+      radius: 5,
+      fill: "#42f572",
+      stroke: "#33a351",
+      strokeWidth: 1,
+      strokeScaleEnabled: false,
+      draggable: false,
+      resizeEnabled: false,
+      transformEnabled: false
+    });
+    var text = new Konva.Text({
+      x: x + 10,
+      y: y - 10,
+      text: label.toUpperCase(),
+      fontSize: 12,
+      fontFamily: "Calibri",
+      fill: "#434a45",
+      draggable: false,
+      resizeEnabled: false,
+      transformEnabled: false
+    });
+    group.add(circle);
+    if (useLabel != undefined && useLabel) {
+      group.add(text);
+    }
+    layer.add(group);
+    app.stage.draw();
+
+    clearState();
+    app.clearSelectedTool();
+    app.setStatus("");
+  }
+
   function click(id) {
     if (state == states[0]) {
       app.clearSelectedTool();