diff --git a/src/plotcutter/contour.ts b/src/plotcutter/contour.ts index 2e6490e..da07d22 100644 --- a/src/plotcutter/contour.ts +++ b/src/plotcutter/contour.ts @@ -38,17 +38,17 @@ export function getRoundedRectPoints( } // 左上角圆角(从顶部开始,顺时针) - for (let i = 0; i < segmentsPerCorner; i++) { - const angle = (Math.PI / 2) * (i / segmentsPerCorner); + for (let i = 0; i <= segmentsPerCorner; i++) { + const angle = (Math.PI / 2) * (i / segmentsPerCorner) - Math.PI; points.push([ - r + r * Math.cos(angle - Math.PI / 2), - r + r * Math.sin(angle - Math.PI / 2) + r + r * Math.cos(angle), + r + r * Math.sin(angle) ]); } // 右上角圆角 - for (let i = 0; i < segmentsPerCorner; i++) { - const angle = (Math.PI / 2) * (i / segmentsPerCorner); + for (let i = 0; i <= segmentsPerCorner; i++) { + const angle = (Math.PI / 2) * (i / segmentsPerCorner) - Math.PI/2; points.push([ width - r + r * Math.cos(angle), r + r * Math.sin(angle) @@ -56,8 +56,8 @@ export function getRoundedRectPoints( } // 右下角圆角 - for (let i = 0; i < segmentsPerCorner; i++) { - const angle = (Math.PI / 2) * (i / segmentsPerCorner) + Math.PI / 2; + for (let i = 0; i <= segmentsPerCorner; i++) { + const angle = (Math.PI / 2) * (i / segmentsPerCorner); points.push([ width - r + r * Math.cos(angle), height - r + r * Math.sin(angle) @@ -65,8 +65,8 @@ export function getRoundedRectPoints( } // 左下角圆角 - for (let i = 0; i < segmentsPerCorner; i++) { - const angle = (Math.PI / 2) * (i / segmentsPerCorner) + Math.PI; + for (let i = 0; i <= segmentsPerCorner; i++) { + const angle = (Math.PI / 2) * (i / segmentsPerCorner) + Math.PI/2; points.push([ r + r * Math.cos(angle), height - r + r * Math.sin(angle)