1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- var circunference = (function() {
- // dashed line
- var tool = {};
- var states = ["center", "radius"];
- var state = undefined;
- var coordinates = [0, 0, 0, 0];
- var points = [0, 0, 0];
- function draw() {
- if (state == undefined) {
- state = states[0];
- app.setStatus("Selecione o centro da Circunferência");
- } else if (state == states[0]) {
- var pos = app.pos();
- coordinates[0] = pos.x;
- coordinates[1] = pos.y;
- 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));
- 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("");
- }
- }
- function bootstrap() {
- app.tools.push(tool);
- }
- function click(id) {
- if (state == states[0]) {
- app.clearSelectedTool();
- clearState();
- return;
- }
- app.setSelectedTool(tool);
- state = states[0];
- app.setStatus("Selecione o primeiro ponto no canvas");
- }
- function clearState() {
- state = undefined;
- }
- tool = {
- id: "circunference",
- title: "Circunferência",
- icon: "line",
- click: click,
- draw: draw,
- points: points,
- coordinates: coordinates
- };
- bootstrap();
- return {
- draw: draw,
- click: click
- };
- })();
|