This commit is contained in:
toly
2023-12-16 12:40:32 +08:00
parent ab2778a22b
commit 01fdf966c5
593 changed files with 8995 additions and 27753 deletions

1
assets/draw/p09/p09.dart Normal file
View File

@@ -0,0 +1 @@
export 'p09_page.dart';

View File

@@ -0,0 +1,23 @@
import 'package:flutter/material.dart';
import 'package:idraw/components/demo_shower.dart';
import 's01.dart' as s1;
import 's02.dart' as s2;
import 's03.dart' as s3;
class P09Page extends StatelessWidget {
const P09Page({super.key});
@override
Widget build(BuildContext context) {
return const DemoShower(
srcCodeDir: 'draw/p09',
demos: [
s1.Paper(),
s2.Paper(),
s3.Paper(),
],
);
}
}

60
assets/draw/p09/s01.dart Normal file
View File

@@ -0,0 +1,60 @@
import 'package:flutter/material.dart';
/// create by 张风捷特烈 on 2020-03-19
/// contact me by email 1981462002@qq.com
/// 说明: 纸
class Paper extends StatelessWidget {
const Paper({super.key});
@override
Widget build(BuildContext context) {
return Row(
children: [
Expanded(
child: CustomPaint(
// painter: BgPainter(), // 背景
foregroundPainter: BgPainter(Colors.blue.withOpacity(0.9)), // 前景
child:
Text(
"张风捷特烈",
style: TextStyle(color: Colors.black, fontSize: 20),
),
),
),
Expanded(
child: CustomPaint(
painter: BgPainter(Colors.red), // 背景
// foregroundPainter: BgPainter(), // 前景
child:
Text(
"张风捷特烈",
style: TextStyle(color: Colors.white, fontSize: 20),
),
),
),
],
);
}
}
class BgPainter extends CustomPainter {
final Color color;
BgPainter(this.color);
@override
void paint(Canvas canvas, Size size) {
canvas.clipRect(Offset.zero&size);
canvas.drawPaint(Paint()..color = color);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) {
return false;
}
}

65
assets/draw/p09/s02.dart Normal file
View File

@@ -0,0 +1,65 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import '../components/coordinate_pro.dart';
/// create by 张风捷特烈 on 2020-03-19
/// contact me by email 1981462002@qq.com
/// 说明: 纸
class Paper extends StatelessWidget {
const Paper({super.key});
@override
Widget build(BuildContext context) {
return Center(child: _buildChild());
}
Widget _buildChild() {
final Widget just = CustomPaint(
painter: BgPainter(), // 背景
);
final Widget withSize = CustomPaint(
size: Size(100,100),
painter: BgPainter(), // 背景
);
final Widget withLayoutBuilder = LayoutBuilder(
builder: _builderByLayout,
);
final Widget withChild = CustomPaint(
painter: BgPainter(),
child: Container(
width: 100,
height: 100,
), // 背景
);
return withChild;
}
Widget _builderByLayout(BuildContext context, BoxConstraints constraints) {
return CustomPaint(
size: Size(constraints.maxWidth, constraints.maxHeight),
painter: BgPainter(), // 背景
);
}
}
class BgPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
canvas.clipRect(Offset.zero&size);
canvas.drawRect(
Rect.fromPoints(Offset.zero, Offset(size.width, size.height)),
Paint()..color = Colors.red);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
}

52
assets/draw/p09/s03.dart Normal file
View File

@@ -0,0 +1,52 @@
import 'dart:async';
import 'dart:math';
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import '../components/coordinate_pro.dart';
/// create by 张风捷特烈 on 2020-03-19
/// contact me by email 1981462002@qq.com
/// 说明: 纸
class Paper extends StatelessWidget{
const Paper({super.key});
@override
Widget build(BuildContext context) {
return CustomPaint(
size: Size(100,100),
painter: PicMan(), // 背景
);
}
}
class PicMan extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
canvas.clipRect(Offset.zero & size); //剪切画布
canvas.translate(size.width/2, size.height/2);
_drawArcDetail(canvas);
}
void _drawArcDetail(Canvas canvas) {
var rect = Rect.fromCenter(center: Offset(0, 0), height: 100, width: 100);
Paint _paint = Paint();
var a = pi / 8;
canvas.drawArc(rect, a, 2 * pi - a.abs() * 2, true, _paint..color=Colors.yellowAccent);
canvas.translate(40, 0);
canvas.translate(40, 0);
canvas.drawCircle(Offset(0, 0), 6, _paint);
canvas.translate(25, 0);
canvas.drawCircle(Offset(0, 0), 6, _paint);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
}