demo4.dart 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import 'dart:math';
  2. import 'package:flutter/material.dart';
  3. import 'package:luojigou_thinking_core/luojigou_thinking_core.dart';
  4. class Demo4 extends StatefulWidget {
  5. const Demo4({Key? key}) : super(key: key);
  6. @override
  7. State<Demo4> createState() => _Demo4State();
  8. }
  9. class _Demo4State extends State<Demo4> {
  10. @override
  11. Widget build(BuildContext context) {
  12. return Center(
  13. child: SizedBox(
  14. width: MediaQuery.of(context).size.width,
  15. height: MediaQuery.of(context).size.width,
  16. child: CustomPaint(
  17. painter: _Painter(),
  18. ),
  19. ),
  20. );
  21. }
  22. }
  23. class _Painter extends CustomPainter {
  24. @override
  25. void paint(Canvas canvas, Size size) {
  26. Paint paint = Paint()
  27. ..color = Colors.deepPurple
  28. ..style = PaintingStyle.stroke
  29. ..strokeWidth = 0.5;
  30. final Offset o = Offset(50, 50);
  31. final Offset o1 = Offset(200, 400);
  32. final Offset o2 = Offset(400, 200);
  33. final path = Path();
  34. path.moveTo(o1.dx, o1.dy);
  35. path.lineTo(o.dx, o.dy);
  36. path.lineTo(o2.dx, o2.dy);
  37. canvas.drawPath(path, paint);
  38. canvas.drawCircle(PlaneGeometryUtils.origin(o, o1, o2, 40), 40, paint);
  39. }
  40. @override
  41. bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
  42. }