Browse Source

fix(measure): 修复曲线连线问题

gavin.chen 2 năm trước cách đây
mục cha
commit
8491cf6f50
2 tập tin đã thay đổi với 13 bổ sung10 xóa
  1. 2 2
      assets/items.json
  2. 11 8
      lib/process/primitives/spline.dart

+ 2 - 2
assets/items.json

@@ -559,7 +559,7 @@
             },
             {
                 "Name": "Spline",
-                "IsWorking": false,
+                "IsWorking": true,
                 "ChildItems": [],
                 "Calculator": {
                     "AvailableOutputs": [
@@ -580,7 +580,7 @@
             },
             {
                 "Name": "Trace",
-                "IsWorking": true,
+                "IsWorking": false,
                 "ChildItems": [],
                 "Calculator": {
                     "AvailableOutputs": [

+ 11 - 8
lib/process/primitives/spline.dart

@@ -64,8 +64,9 @@ class Spline extends AreaItemAbstract with AutoSnapMixin {
         f.innerPoints.last = args;
       }
       doCalculate();
-
-      f.isSnapped = checkAutoSnap(args);
+      if (checkAutoSnap(args)) {
+        f.innerPoints.removeLast();
+      }
     }
     return true;
   }
@@ -99,18 +100,20 @@ class SplineFeature extends AreaItemFeatureAbstract {
   void paint(Canvas canvas, Size size) {
     if (innerPoints.isEmpty) return;
     final paintPoints = innerPoints;
-    if (isSnapped) {
-      paintPoints.removeLast();
-    }
+
     drawId(canvas, size);
 
     final startOffset = convert2ViewPoint(size, startPoint).toOffset();
 
-    if (innerPoints.length == 1) {
+    if (paintPoints.length == 1) {
+      drawVertex(canvas, startOffset, true);
+      return;
+    } else if (paintPoints.length == 2) {
+      final endOffset = convert2ViewPoint(size, endPoint).toOffset();
       drawVertex(canvas, startOffset, true);
+      drawVertex(canvas, endOffset, true);
+      canvas.drawDashLine(startOffset, endOffset, 1, 10, paintPan);
       return;
-    } else {
-      drawVertex(canvas, startOffset);
     }
 
     /// 全部innerPoints点集转为Offset集绘制