1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import 'dart:ui';
- import 'package:fis_measure/view/paint/ai_patint_controller.dart';
- import 'package:fis_measure/view/paint/ai_patint_state.dart';
- import 'package:fis_measure/view/paint/parts/index.dart';
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- import 'package:path_drawing/path_drawing.dart';
- /// ai描点
- class PaintAIDots extends CustomPainter {
- final AiDotsResults aiDotsResults;
- late final aiPatintController = Get.find<AiPatintController>();
- final int aiResultIndex;
- PaintAIDots(
- this.aiDotsResults,
- this.aiResultIndex,
- );
- bool get isSelected => aiResultIndex == aiDotsResults.aiResultsIndex;
- @override
- void paint(Canvas canvas, Size size) {
- final contoursPaint = Paint()
- ..color = Colors.green
- ..strokeCap = StrokeCap.round
- ..strokeWidth = 3.0
- ..style = PaintingStyle.stroke;
- // 遍历 contoursPoints 绘制轮廓
- if (aiDotsResults.aiResultsList.isNotEmpty) {
- Path path = Path();
- path.moveTo(
- aiDotsResults.aiResultsList[0].dx, aiDotsResults.aiResultsList[0].dy);
- for (int i = 1; i < aiDotsResults.aiResultsList.length; i++) {
- path.lineTo(aiDotsResults.aiResultsList[i].dx,
- aiDotsResults.aiResultsList[i].dy);
- }
- path.close();
- canvas.drawPath(
- dashPath(
- path,
- dashArray: CircularIntervalList<double>([1, 10]),
- ),
- isSelected ? aiPaintSelected : aiPaint,
- );
- }
- // canvas.drawPoints(
- // ///PointMode的枚举类型有三个,points(点),lines(线,隔点连接),polygon(线,相邻连接)
- // PointMode.points,
- // aiDotsResults.aiResultsList,
- // isSelected ? aiPaintSelected : aiPaint,
- // );
- }
- @override
- bool shouldRepaint(covariant PaintAIDots oldDelegate) {
- return oldDelegate.hashCode != hashCode;
- }
- }
|