diff --git a/src/components/ui/SurfaceShape.jsx b/src/components/ui/SurfaceShape.jsx index af445c2a..6a5147c8 100644 --- a/src/components/ui/SurfaceShape.jsx +++ b/src/components/ui/SurfaceShape.jsx @@ -185,6 +185,7 @@ export const SurfaceShapeModal = ({ canvas }) => { name: 'guideTriangle', }, ) + break } case 8: { const angleInRadians = Math.asin(length2 / length3) @@ -204,6 +205,7 @@ export const SurfaceShapeModal = ({ canvas }) => { name: 'guideTriangle', }, ) + break } case 9: { const angleInRadians = Math.asin(length2 / length3) @@ -223,6 +225,37 @@ export const SurfaceShapeModal = ({ canvas }) => { name: 'guideTriangle', }, ) + break + } + case 10: { + console.log(length1, length2, length3, length4, length5) + obj = new QPolygon( + [ + { x: pointer.x - (length1 + length2 + length3) / 2, y: pointer.y - (length4 + length5) / 2 }, + { x: pointer.x - (length1 + length2 + length3) / 2, y: pointer.y + (length4 + length5) / 2 }, + { x: pointer.x - (length1 + length2 + length3) / 2 + length1, y: pointer.y + (length4 + length5) / 2 }, + { x: pointer.x - (length1 + length2 + length3) / 2 + length1, y: pointer.y + (length4 + length5) / 2 - length5 }, + { x: pointer.x - (length1 + length2 + length3) / 2 + length1 + length2, y: pointer.y + (length4 + length5) / 2 - length5 }, + { x: pointer.x - (length1 + length2 + length3) / 2 + length1 + length2, y: pointer.y + (length4 + length5) / 2 - length5 + length5 }, + { + x: pointer.x - (length1 + length2 + length3) / 2 + length1 + length2 + length3, + y: pointer.y + (length4 + length5) / 2 - length5 + length5, + }, + { + x: pointer.x - (length1 + length2 + length3) / 2 + length1 + length2 + length3, + y: pointer.y + (length4 + length5) / 2 - length5 + length5 - (length4 + length5), + }, + ], + { + fill: 'transparent', + stroke: 'black', + strokeWidth: 2, + selectable: true, + fontSize: fontSize, + name: 'guideTriangle', + }, + ) + break } } canvas?.add(obj) @@ -238,22 +271,23 @@ export const SurfaceShapeModal = ({ canvas }) => { } const setLength = (e) => { - const { name, value } = e.target + let { name, value } = e.target + value = value.replace(/[^-0-9]/g, '') switch (name) { case 'length1': - setLength1(value) + setLength1(Number(value)) break case 'length2': - setLength2(value) + setLength2(Number(value)) break case 'length3': - setLength3(value) + setLength3(Number(value)) break case 'length4': - setLength4(value) + setLength4(Number(value)) break case 'length5': - setLength5(value) + setLength5(Number(value)) break default: break @@ -329,84 +363,100 @@ export const SurfaceShapeModal = ({ canvas }) => { + {type === 1 ? (