简单绘制

This commit is contained in:
toly
2023-05-07 08:09:01 +08:00
parent 81d001c3ef
commit 97a0edb982

View File

@@ -1,8 +1,8 @@
import 'dart:math';
import 'dart:ui';
import 'package:flutter/material.dart';
import 'paper_app_bar.dart';
class Paper extends StatefulWidget {
@@ -16,7 +16,9 @@ class _PaperState extends State<Paper> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: PaperAppBar(onClear: _clear,),
appBar: PaperAppBar(
onClear: _clear,
),
body: CustomPaint(
painter: PaperPainter(),
child: ConstrainedBox(constraints: const BoxConstraints.expand()),
@@ -24,28 +26,63 @@ class _PaperState extends State<Paper> {
);
}
void _clear() {
}
void _clear() {}
}
class PaperPainter extends CustomPainter{
class PaperPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
List<Offset> points = const [
Offset(100,100),
Offset(100,150),
Offset(150,150),
Offset(200,100),
];
// List<Offset> points = const [
// Offset(100,100),
// Offset(100,150),
// Offset(150,150),
// Offset(200,100),
// ];
//
// paint.strokeWidth = 10;
//
// paint.strokeCap = StrokeCap.round;
//
//
// canvas.drawPoints(PointMode.polygon, points , paint);
// canvas.translate(0, 150);
Paint paint = Paint();
paint.strokeWidth = 10;
canvas.drawPoints(PointMode.polygon, points , paint);
canvas.drawCircle(Offset(100, 100), 50, paint);
paint.style = PaintingStyle.stroke;
canvas.drawCircle(Offset(250, 100), 50, paint);
canvas.translate(0, 150);
paint.strokeWidth = 2;
Rect rect = Rect.fromCenter(center: Offset(100, 100), width: 100, height: 80);
canvas.drawRect(rect, paint);
paint.style = PaintingStyle.fill;
RRect rrect = RRect.fromRectXY(rect.translate(150, 0), 8, 8);
canvas.drawRRect(rrect, paint);
canvas.translate(0, 150);
paint.strokeWidth = 2;
Rect overRect = Rect.fromCenter(center: Offset(100, 100), width: 100, height: 80);
canvas.drawOval(overRect, paint);
paint.style = PaintingStyle.stroke;
canvas.drawArc(overRect.translate(150, 0), 0, pi*1.3,true,paint);
// RRect rrect = RRect.fromRectXY(rect.translate(150, 0), 8, 8);
// canvas.drawRRect(rrect, paint);
// paint.style = PaintingStyle.stroke;
// canvas.drawCircle(Offset(250, 100), 50, paint);
// paint.color = Colors.red;
// paint.style = PaintingStyle.stroke;
// paint.strokeJoin = StrokeJoin.round;
// canvas.drawPoints(PointMode.polygon, points , paint);
// canvas.translate(0, 150);
//
// paint.color = Colors.blue;
// canvas.drawPoints(PointMode.polygon, points , paint);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => true;
}
}