12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- import 'package:flutter/material.dart';
- class PolygonPainter extends CustomPainter {
- @override
- void paint(Canvas canvas, Size size) {
- final paint = Paint()
- ..strokeWidth = 5
- ..color = Colors.indigoAccent
- ..style = PaintingStyle.fill;
- final triangle = Path();
- triangle.moveTo(150, 0);
- triangle.relativeLineTo(100, 100);
- triangle.relativeLineTo(-150, 0);
- triangle.close();
- final square1 = Path();
- square1.moveTo(50, 150);
- square1.relativeLineTo(100, 0);
- square1.relativeLineTo(0, 100);
- square1.relativeLineTo(-100, 0);
- square1.close();
- const square2 = Rect.fromLTWH(200, 150, 100, 100);
- final hexagon = Path()
-
- ..moveTo(175, 300)
-
- ..relativeLineTo(75, 50)
-
- ..relativeLineTo(0, 75)
-
- ..relativeLineTo(-75, 50)
-
- ..relativeLineTo(-75, -50)
-
- ..relativeLineTo(0, -75)
-
- ..close();
- final cross = Path()
- ..moveTo(150, 500)
- ..relativeLineTo(50, 0)
- ..relativeLineTo(0, 50)
- ..relativeLineTo(50, 0)
- ..relativeLineTo(0, 50)
- ..relativeLineTo(-50, 0)
- ..relativeLineTo(0, 50)
- ..relativeLineTo(-50, 0)
- ..relativeLineTo(0, -50)
- ..relativeLineTo(-50, 0)
- ..relativeLineTo(0, -50)
- ..relativeLineTo(50, 0)
- ..close();
-
-
- canvas.drawPath(triangle, paint);
- canvas.drawPath(square1, paint);
- canvas.drawRect(square2, paint);
- canvas.drawPath(cross, paint);
- canvas.drawPath(hexagon, paint);
- }
- @override
- bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
- }
|