¿Hay alguna posibilidad de dibujar líneas con ajuste al ángulo? Quiero permitir dibujar líneas solo con los siguientes ángulos: 0, 45, 90, 135, 180...
function checkAngle(shape) { if (data.attrs.type === 'line') { var points = shape.points(); // [x1, y1, x2, y2] var dy = points[3] - points[1]; var dx = points[2] - points[0]; var angle = Math.atan2(dy, dx); angle *= 180 / Math.PI; console.log('Angle is: ' + angle); if ((-5 <= angle && angle <= 5) || (175 <= angle && angle <= 185) || (-175 >= angle && angle >= -185)) { shape.attrs.points = [points[0], points[1], points[2], points[1]]; } else if ((85 <= angle && angle <= 95) || (-85 >= angle && angle >= -95)) { shape.attrs.points = [points[0], points[1], points[0], points[3]]; } return shape; } }Esta función verifica el ángulo de la línea y luego, de acuerdo con el valor del ángulo, cambia los puntos X e Y para dibujar una línea recta vertical u horizontal.
No. No hay nada integrado en Konva para ajustar las líneas cuando se están dibujando. ¿Supongo que son líneas rectas? Tendría que hacer los cálculos usted mismo para saber dónde ajustar. Luego, podría aplicar eso en los eventos de mouse apropiados para obtener lo que necesita.