Răsfoiți Sursa

修正坐标转换方法

gavin.chen 9 luni în urmă
părinte
comite
fcdcabf5d7

+ 4 - 2
lib/process/calcuators/urm_calcuators/urm_trace_perfusion.dart

@@ -44,8 +44,10 @@ class URMTracePerfusionCal extends URMTraceMeasureCal {
         if (outresult.perfusionImgBase64 != null) {
           feature.perfusionImg =
               await loadImageFromBase64(outresult.perfusionImgBase64!);
-          feature.perfusionScaleDRect =
-              urmApplication.viewToLocalRect(outresult.perfusionScaleDRect!);
+          feature.leftTopPoint = urmApplication
+              .viewToLocal(outresult.perfusionScaleDRect!.topLeft!);
+          feature.rightBottomPoint = urmApplication
+              .viewToLocal(outresult.perfusionScaleDRect!.bottomRight!);
         }
       }
     } catch (e) {

+ 11 - 7
lib/process/primitives/urm_measure/urm_trace_measure.dart

@@ -1,4 +1,5 @@
 import 'package:fis_jsonrpc/rpc.dart';
+import 'package:fis_measure/interfaces/date_types/point.dart';
 import 'package:fis_measure/interfaces/enums/items.dart';
 import 'package:fis_measure/interfaces/process/items/item.dart';
 import 'package:fis_measure/interfaces/process/items/item_metas.dart';
@@ -183,7 +184,8 @@ class TracePerfusionImageFeature extends TraceFeature {
 
   ui.Image? perfusionImg;
   IntRect? perfusionPiexlRect;
-  Rect? perfusionScaleDRect;
+  DPoint? leftTopPoint;
+  DPoint? rightBottomPoint;
   @override
   void paint(Canvas canvas, Size size) {
     if (perfusionImg != null) {
@@ -195,12 +197,14 @@ class TracePerfusionImageFeature extends TraceFeature {
         perfusionImg!.width.toDouble(),
         perfusionImg!.height.toDouble(),
       );
-      Rect dst = Rect.fromLTWH(
-        perfusionScaleDRect!.left.toDouble() * size.width,
-        perfusionScaleDRect!.top.toDouble() * size.height,
-        perfusionScaleDRect!.width.toDouble() * size.width,
-        perfusionScaleDRect!.height.toDouble() * size.height,
-      );
+      if (leftTopPoint == null || rightBottomPoint == null) {
+        return;
+      }
+      DPoint leftTop = convert2ViewPoint(size, leftTopPoint!);
+      DPoint rightBottom = convert2ViewPoint(size, rightBottomPoint!);
+      convert2ViewPoint(size, rightBottomPoint!);
+      Rect dst = Rect.fromPoints(
+          Offset(leftTop.x, leftTop.y), Offset(rightBottom.x, rightBottom.y));
       canvas.drawImageRect(perfusionImg!, src, dst, paint);
     }
     super.paint(canvas, size);