|
|
@@ -1345,29 +1345,49 @@ export default class PolygonLengthMeasurementTool extends AnnotationTool {
|
|
|
};
|
|
|
// 绘制多边形线段(需要至少2个点)
|
|
|
if (annotationUID && points.length >= 2) {
|
|
|
- for (let j = 0; j < canvasPoints.length - 1; j++) {
|
|
|
- const lineUID = `${annotationUID}-line-${j}`;
|
|
|
- drawLineSvg(
|
|
|
- svgDrawingHelper,
|
|
|
- annotationUID,
|
|
|
- lineUID,
|
|
|
- canvasPoints[j],
|
|
|
- canvasPoints[j + 1],
|
|
|
- lineOptions
|
|
|
- );
|
|
|
- }
|
|
|
+ // 在绘制过程中:只绘制已完成的线段(不包括最后一段到鼠标位置的线段)
|
|
|
+ // 在非绘制过程中:绘制完整的多边形包括闭合线段
|
|
|
+ const isCurrentlyDrawing = this.isDrawing && this.currentAnnotation === annotation;
|
|
|
+
|
|
|
+ if (isCurrentlyDrawing) {
|
|
|
+ // 绘制过程中:只绘制 j 从 0 到 length-2 的线段(不显示闭合预览的实线)
|
|
|
+ for (let j = 0; j < canvasPoints.length - 1; j++) {
|
|
|
+ const lineUID = `${annotationUID}-line-${j}`;
|
|
|
+ drawLineSvg(
|
|
|
+ svgDrawingHelper,
|
|
|
+ annotationUID,
|
|
|
+ lineUID,
|
|
|
+ canvasPoints[j],
|
|
|
+ canvasPoints[j + 1],
|
|
|
+ lineOptions
|
|
|
+ );
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 非绘制过程中:绘制完整的多边形
|
|
|
+ for (let j = 0; j < canvasPoints.length - 1; j++) {
|
|
|
+ const lineUID = `${annotationUID}-line-${j}`;
|
|
|
+ drawLineSvg(
|
|
|
+ svgDrawingHelper,
|
|
|
+ annotationUID,
|
|
|
+ lineUID,
|
|
|
+ canvasPoints[j],
|
|
|
+ canvasPoints[j + 1],
|
|
|
+ lineOptions
|
|
|
+ );
|
|
|
+ }
|
|
|
|
|
|
- // 绘制闭合线段(从最后一个点到第一个点)
|
|
|
- if (points.length >= 3) {
|
|
|
- const closingLineUID = `${annotationUID}-closing-line`;
|
|
|
- drawLineSvg(
|
|
|
- svgDrawingHelper,
|
|
|
- annotationUID,
|
|
|
- closingLineUID,
|
|
|
- canvasPoints[canvasPoints.length - 1],
|
|
|
- canvasPoints[0],
|
|
|
- lineOptions
|
|
|
- );
|
|
|
+ // 绘制闭合线段(从最后一个点到第一个点)
|
|
|
+ if (points.length >= 3) {
|
|
|
+ const closingLineUID = `${annotationUID}-closing-line`;
|
|
|
+ drawLineSvg(
|
|
|
+ svgDrawingHelper,
|
|
|
+ annotationUID,
|
|
|
+ closingLineUID,
|
|
|
+ canvasPoints[canvasPoints.length - 1],
|
|
|
+ canvasPoints[0],
|
|
|
+ lineOptions
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|