Skip to content

Instantly share code, notes, and snippets.

@sbis04
Last active February 7, 2022 12:47
Show Gist options
  • Save sbis04/31d779fe12a47e1d6dbba44604115080 to your computer and use it in GitHub Desktop.
Save sbis04/31d779fe12a47e1d6dbba44604115080 to your computer and use it in GitHub Desktop.
Dash painter
// Created by: Souvik Biswas
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Vikings Dash',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({Key? key}) : super(key: key);
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage>
with SingleTickerProviderStateMixin {
late Animation<double> animationRightWing;
late Animation<double> animationLeftWing;
late AnimationController controller;
@override
void initState() {
super.initState();
controller = AnimationController(
duration: const Duration(seconds: 2),
vsync: this,
);
animationRightWing = Tween<double>(
begin: 0,
end: -20,
).animate(controller)
..addListener(
() => setState(() {}),
)
..addStatusListener((status) {
if (status == AnimationStatus.completed) {
controller.reverse();
} else if (status == AnimationStatus.dismissed) {
controller.forward();
}
});
animationLeftWing = Tween<double>(
begin: -2,
end: 2,
).animate(controller)
..addListener(
() => setState(() {}),
)
..addStatusListener((status) {
if (status == AnimationStatus.completed) {
controller.reverse();
} else if (status == AnimationStatus.dismissed) {
controller.forward();
}
});
controller.forward();
}
@override
void dispose() {
controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
var screenWidth = MediaQuery.of(context).size.width;
var screenHeight = MediaQuery.of(context).size.height;
var boxSize = screenWidth > screenHeight ? screenHeight : screenWidth;
return Scaffold(
body: Stack(
children: [
Positioned(
top: boxSize * 0.33,
left: boxSize * 0.1,
child: RotationTransition(
turns: AlwaysStoppedAnimation(animationRightWing.value / 360),
child: CustomPaint(
painter: WingLeftPainter(),
child: SizedBox(
width: boxSize * 0.4,
height: boxSize * 0.4,
),
),
),
),
Positioned(
top: boxSize * 0.29 + (animationRightWing.value).abs() * 2,
left: 0,
child: RotationTransition(
turns: AlwaysStoppedAnimation(animationRightWing.value / 360),
child: CustomPaint(
painter: HornFirstPainter(),
child: SizedBox(
width: boxSize * 0.26,
height: boxSize * 0.26,
),
),
),
),
Positioned(
top: boxSize * 0.33,
left: boxSize * 0.1,
child: CustomPaint(
painter: DashPainter(),
child: SizedBox(
width: boxSize * 0.4,
height: boxSize * 0.4,
),
),
),
Positioned(
top: boxSize * 0.33,
left: boxSize * 0.1,
child: RotationTransition(
turns: AlwaysStoppedAnimation(animationLeftWing.value / 360),
child: CustomPaint(
painter: WingRightPainter(),
child: SizedBox(
width: boxSize * 0.4,
height: boxSize * 0.4,
),
),
),
),
Positioned(
top: boxSize * 0.5,
left: boxSize * 0.44,
child: CustomPaint(
painter: EyeLeftPainter(),
child: SizedBox(
width: boxSize * 0.4,
height: boxSize * 0.4,
),
),
),
Positioned(
top: boxSize * 0.5,
left: boxSize * 0.60,
child: CustomPaint(
painter: EyeRightPainter(),
child: SizedBox(
width: boxSize * 0.4,
height: boxSize * 0.4,
),
),
),
Positioned(
top: boxSize * 0.335,
left: boxSize * 0.11,
child: CustomPaint(
painter: EyeBallPainter(),
child: SizedBox(
width: boxSize * 0.4,
height: boxSize * 0.4,
),
),
),
Positioned(
top: boxSize * 0.17,
left: boxSize * 0.355,
child: RotationTransition(
turns: const AlwaysStoppedAnimation(50 / 360),
child: CustomPaint(
painter: HelmetFirstPainter(),
child: SizedBox(
width: boxSize * 0.4,
height: boxSize * 0.4,
),
),
),
),
],
),
);
}
}
class DashPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint();
Path path = Path();
// Path number 1
// LEG LEFT
paint.color = const Color(0xff6A4A35);
path = Path();
path.lineTo(size.width * 0.9, size.height * 1.07);
path.cubicTo(size.width * 0.9, size.height * 1.07, size.width * 0.9,
size.height * 1.17, size.width * 0.9, size.height * 1.17);
path.cubicTo(size.width * 0.9, size.height * 1.17, size.width * 0.82,
size.height * 1.16, size.width * 0.81, size.height * 1.2);
path.cubicTo(size.width * 0.79, size.height * 1.24, size.width * 0.87,
size.height * 1.2, size.width * 0.87, size.height * 1.2);
path.cubicTo(size.width * 0.87, size.height * 1.2, size.width * 0.84,
size.height * 1.26, size.width * 0.86, size.height * 1.27);
path.cubicTo(size.width * 0.88, size.height * 1.29, size.width * 0.9,
size.height * 1.23, size.width * 0.91, size.height * 1.21);
path.cubicTo(size.width * 0.93, size.height * 1.18, size.width * 0.94,
size.height * 1.24, size.width * 0.94, size.height * 1.24);
path.cubicTo(size.width * 0.94, size.height * 1.24, size.width * 0.95,
size.height * 1.26, size.width * 0.97, size.height * 1.25);
path.cubicTo(size.width, size.height * 1.24, size.width * 0.97,
size.height * 1.22, size.width * 0.97, size.height * 1.22);
path.cubicTo(size.width * 0.97, size.height * 1.22, size.width * 0.93,
size.height * 1.16, size.width * 0.93, size.height * 1.16);
path.cubicTo(size.width * 0.93, size.height * 1.16, size.width * 0.93,
size.height * 1.06, size.width * 0.93, size.height * 1.06);
path.cubicTo(size.width * 0.93, size.height * 1.06, size.width * 0.9,
size.height * 1.05, size.width * 0.9, size.height * 1.05);
path.cubicTo(size.width * 0.9, size.height * 1.05, size.width * 0.9,
size.height * 1.07, size.width * 0.9, size.height * 1.07);
path.cubicTo(size.width * 0.9, size.height * 1.07, size.width * 0.9,
size.height * 1.07, size.width * 0.9, size.height * 1.07);
path.cubicTo(size.width * 0.9, size.height * 1.07, size.width * 0.9,
size.height * 1.07, size.width * 0.9, size.height * 1.07);
canvas.drawPath(path, paint);
// Path number 2
// LEG RIGHT
paint.color = const Color(0xff6A4A35);
path = Path();
path.lineTo(size.width * 1.33, size.height * 1.07);
path.cubicTo(size.width * 1.33, size.height * 1.07, size.width * 1.33,
size.height * 1.17, size.width * 1.33, size.height * 1.17);
path.cubicTo(size.width * 1.33, size.height * 1.17, size.width * 1.42,
size.height * 1.16, size.width * 1.43, size.height * 1.2);
path.cubicTo(size.width * 1.44, size.height * 1.24, size.width * 1.36,
size.height * 1.2, size.width * 1.36, size.height * 1.2);
path.cubicTo(size.width * 1.36, size.height * 1.2, size.width * 1.39,
size.height * 1.26, size.width * 1.37, size.height * 1.27);
path.cubicTo(size.width * 1.35, size.height * 1.29, size.width * 1.33,
size.height * 1.23, size.width * 1.32, size.height * 1.21);
path.cubicTo(size.width * 1.31, size.height * 1.18, size.width * 1.29,
size.height * 1.24, size.width * 1.29, size.height * 1.24);
path.cubicTo(size.width * 1.29, size.height * 1.24, size.width * 1.28,
size.height * 1.26, size.width * 1.26, size.height * 1.25);
path.cubicTo(size.width * 1.24, size.height * 1.24, size.width * 1.26,
size.height * 1.22, size.width * 1.26, size.height * 1.22);
path.cubicTo(size.width * 1.26, size.height * 1.22, size.width * 1.31,
size.height * 1.16, size.width * 1.31, size.height * 1.16);
path.cubicTo(size.width * 1.31, size.height * 1.16, size.width * 1.31,
size.height * 1.06, size.width * 1.31, size.height * 1.06);
path.cubicTo(size.width * 1.31, size.height * 1.06, size.width * 1.33,
size.height * 1.05, size.width * 1.33, size.height * 1.05);
path.cubicTo(size.width * 1.33, size.height * 1.05, size.width * 1.33,
size.height * 1.07, size.width * 1.33, size.height * 1.07);
path.cubicTo(size.width * 1.33, size.height * 1.07, size.width * 1.33,
size.height * 1.07, size.width * 1.33, size.height * 1.07);
path.cubicTo(size.width * 1.33, size.height * 1.07, size.width * 1.33,
size.height * 1.07, size.width * 1.33, size.height * 1.07);
canvas.drawPath(path, paint);
// Path number 3
// BODY
paint.color = const Color(0xff8ADCF6);
path = Path();
path.lineTo(size.width * 0.62, size.height * 0.73);
path.cubicTo(size.width * 0.62, size.height * 0.73, size.width * 0.6,
size.height * 1.11, size.width * 1.16, size.height * 1.08);
path.cubicTo(size.width * 1.71, size.height * 1.06, size.width * 1.62,
size.height * 0.73, size.width * 1.62, size.height * 0.73);
path.cubicTo(size.width * 1.62, size.height * 0.73, size.width * 1.58,
size.height * 0.08, size.width * 1.12, size.height * 0.09);
path.cubicTo(size.width * 0.67, size.height * 0.09, size.width * 0.62,
size.height * 0.73, size.width * 0.62, size.height * 0.73);
path.cubicTo(size.width * 0.62, size.height * 0.73, size.width * 0.62,
size.height * 0.73, size.width * 0.62, size.height * 0.73);
canvas.drawPath(path, paint);
// Path number 7
// Belly
paint.color = const Color(0xffE0E2E2);
path = Path();
path.lineTo(size.width * 0.75, size.height * 0.73);
path.cubicTo(size.width * 0.75, size.height * 0.73, size.width * 0.87,
size.height * 0.88, size.width * 1.12, size.height * 0.88);
path.cubicTo(size.width * 1.37, size.height * 0.88, size.width * 1.5,
size.height * 0.73, size.width * 1.5, size.height * 0.73);
path.cubicTo(size.width * 1.5, size.height * 0.73, size.width * 1.56,
size.height * 0.84, size.width * 1.5, size.height);
path.cubicTo(size.width * 1.5, size.height, size.width * 1.39,
size.height * 1.08, size.width * 1.12, size.height * 1.09);
path.cubicTo(size.width * 0.82, size.height * 1.09, size.width * 0.75,
size.height * 0.98, size.width * 0.75, size.height * 0.98);
path.cubicTo(size.width * 0.75, size.height * 0.98, size.width * 0.68,
size.height * 0.86, size.width * 0.75, size.height * 0.73);
path.cubicTo(size.width * 0.75, size.height * 0.73, size.width * 0.75,
size.height * 0.73, size.width * 0.75, size.height * 0.73);
canvas.drawPath(path, paint);
// Path number 8
// EYE RIGHT - blue
paint.color = const Color(0xff40B7ED);
path = Path();
path.lineTo(size.width * 1.43, size.height * 0.34);
path.cubicTo(size.width * 1.43, size.height * 0.34, size.width * 1.52,
size.height * 0.4, size.width * 1.52, size.height * 0.48);
path.cubicTo(size.width * 1.52, size.height * 0.55, size.width * 1.47,
size.height * 0.66, size.width * 1.37, size.height * 0.68);
path.cubicTo(size.width * 1.26, size.height * 0.7, size.width * 1.12,
size.height * 0.64, size.width * 1.13, size.height * 0.47);
path.cubicTo(size.width * 1.13, size.height * 0.47, size.width * 1.13,
size.height * 0.46, size.width * 1.17, size.height * 0.38);
path.cubicTo(size.width * 1.17, size.height * 0.38, size.width * 1.43,
size.height * 0.34, size.width * 1.43, size.height * 0.34);
path.cubicTo(size.width * 1.43, size.height * 0.34, size.width * 1.43,
size.height * 0.34, size.width * 1.43, size.height * 0.34);
canvas.drawPath(path, paint);
// Path number 9
// EYE LEFT - blue
paint.color = const Color(0xff40B7ED);
path = Path();
path.lineTo(size.width * 0.83, size.height * 0.34);
path.cubicTo(size.width * 0.83, size.height * 0.34, size.width * 0.74,
size.height * 0.4, size.width * 0.74, size.height * 0.48);
path.cubicTo(size.width * 0.74, size.height * 0.55, size.width * 0.79,
size.height * 0.66, size.width * 0.89, size.height * 0.68);
path.cubicTo(size.width, size.height * 0.7, size.width * 1.14,
size.height * 0.64, size.width * 1.13, size.height * 0.47);
path.cubicTo(size.width * 1.13, size.height * 0.47, size.width * 1.13,
size.height * 0.46, size.width * 1.09, size.height * 0.38);
path.cubicTo(size.width * 1.09, size.height * 0.38, size.width * 0.83,
size.height * 0.34, size.width * 0.83, size.height * 0.34);
path.cubicTo(size.width * 0.83, size.height * 0.34, size.width * 0.83,
size.height * 0.34, size.width * 0.83, size.height * 0.34);
canvas.drawPath(path, paint);
// Path number 18
paint.color = const Color(0xff6A4A35);
path = Path();
path.lineTo(size.width * 1.13, size.height * 0.52);
path.cubicTo(size.width * 1.13, size.height * 0.52, size.width * 1.06,
size.height * 0.53, size.width * 1.06, size.height * 0.59);
path.cubicTo(size.width * 1.06, size.height * 0.59, size.width * 1.14,
size.height * 0.94, size.width * 1.14, size.height * 0.94);
path.cubicTo(size.width * 1.14, size.height * 0.94, size.width * 1.2,
size.height * 0.57, size.width * 1.2, size.height * 0.57);
path.cubicTo(size.width * 1.2, size.height * 0.57, size.width * 1.18,
size.height * 0.52, size.width * 1.13, size.height * 0.52);
path.cubicTo(size.width * 1.13, size.height * 0.52, size.width * 1.13,
size.height * 0.52, size.width * 1.13, size.height * 0.52);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return true;
}
}
class WingRightPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint();
Path path = Path();
paint.color = const Color(0xff40B7EC);
path = Path();
path.lineTo(size.width * 1.85, size.height * 0.83);
path.cubicTo(size.width * 1.85, size.height * 0.83, size.width * 1.64,
size.height * 0.58, size.width * 1.56, size.height * 0.54);
path.cubicTo(size.width * 1.48, size.height / 2, size.width * 1.53,
size.height * 0.87, size.width * 1.58, size.height * 0.91);
path.cubicTo(size.width * 1.63, size.height * 0.95, size.width * 1.63,
size.height, size.width * 1.75, size.height);
path.cubicTo(size.width * 1.75, size.height, size.width * 1.76,
size.height * 1.03, size.width * 1.81, size.height * 1.02);
path.cubicTo(size.width * 1.86, size.height, size.width * 1.81,
size.height * 0.89, size.width * 1.81, size.height * 0.89);
path.cubicTo(size.width * 1.81, size.height * 0.89, size.width * 1.9,
size.height * 0.92, size.width * 1.85, size.height * 0.83);
path.cubicTo(size.width * 1.85, size.height * 0.83, size.width * 1.85,
size.height * 0.83, size.width * 1.85, size.height * 0.83);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return true;
}
}
class EyeBallPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint();
Path path = Path();
// Path number 12
paint.color = const Color(0xffFFFFFF);
path = Path();
path.lineTo(size.width * 0.94, size.height * 0.45);
path.cubicTo(size.width * 0.94, size.height * 0.46, size.width * 0.93,
size.height * 0.47, size.width * 0.92, size.height * 0.47);
path.cubicTo(size.width * 0.91, size.height * 0.47, size.width * 0.9,
size.height * 0.46, size.width * 0.9, size.height * 0.45);
path.cubicTo(size.width * 0.9, size.height * 0.44, size.width * 0.91,
size.height * 0.44, size.width * 0.92, size.height * 0.44);
path.cubicTo(size.width * 0.93, size.height * 0.44, size.width * 0.94,
size.height * 0.44, size.width * 0.94, size.height * 0.45);
canvas.drawPath(path, paint);
// Path number 13
paint.color = const Color(0xffFFFFFF);
path = Path();
path.lineTo(size.width * 0.96, size.height / 2);
path.cubicTo(size.width * 0.96, size.height * 0.51, size.width * 0.95,
size.height * 0.53, size.width * 0.94, size.height * 0.53);
path.cubicTo(size.width * 0.92, size.height * 0.53, size.width * 0.91,
size.height * 0.51, size.width * 0.91, size.height / 2);
path.cubicTo(size.width * 0.91, size.height * 0.49, size.width * 0.92,
size.height * 0.47, size.width * 0.94, size.height * 0.47);
path.cubicTo(size.width * 0.95, size.height * 0.47, size.width * 0.96,
size.height * 0.49, size.width * 0.96, size.height / 2);
canvas.drawPath(path, paint);
paint.color = const Color(0xffFFFFFF);
path = Path();
path.lineTo(size.width * 1.32, size.height * 0.45);
path.cubicTo(size.width * 1.32, size.height * 0.46, size.width * 1.31,
size.height * 0.47, size.width * 1.3, size.height * 0.47);
path.cubicTo(size.width * 1.29, size.height * 0.47, size.width * 1.28,
size.height * 0.46, size.width * 1.28, size.height * 0.45);
path.cubicTo(size.width * 1.28, size.height * 0.44, size.width * 1.29,
size.height * 0.44, size.width * 1.3, size.height * 0.44);
path.cubicTo(size.width * 1.31, size.height * 0.44, size.width * 1.32,
size.height * 0.44, size.width * 1.32, size.height * 0.45);
canvas.drawPath(path, paint);
// Path number 17
paint.color = const Color(0xffFFFFFF);
path = Path();
path.lineTo(size.width * 1.35, size.height / 2);
path.cubicTo(size.width * 1.35, size.height * 0.51, size.width * 1.34,
size.height * 0.53, size.width * 1.33, size.height * 0.53);
path.cubicTo(size.width * 1.31, size.height * 0.53, size.width * 1.3,
size.height * 0.51, size.width * 1.3, size.height / 2);
path.cubicTo(size.width * 1.3, size.height * 0.49, size.width * 1.31,
size.height * 0.47, size.width * 1.33, size.height * 0.47);
path.cubicTo(size.width * 1.34, size.height * 0.47, size.width * 1.35,
size.height * 0.49, size.width * 1.35, size.height / 2);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return true;
}
}
class EyeRightPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint();
Path path = Path();
// Path number 14
paint.color = const Color(0xff000000);
path = Path();
path.lineTo(size.width * 0.1, size.height * 0.17);
path.cubicTo(size.width * 0.1, size.height * 0.17, size.width * 0.09,
size.height * 0.17, size.width * 0.08, size.height * 0.17);
path.cubicTo(size.width * 0.01, size.height * 0.16, 0, size.height * 0.11,
0, size.height * 0.07);
path.cubicTo(size.width * 0.01, size.height * 0.04, size.width * 0.03,
size.height * 0.02, size.width * 0.06, size.height * 0.01);
path.cubicTo(size.width * 0.06, size.height * 0.01, size.width * 0.07,
size.height * 0.01, size.width * 0.07, size.height * 0.01);
path.cubicTo(
size.width * 0.08, 0, size.width * 0.09, 0, size.width * 0.09, 0);
path.cubicTo(size.width * 0.13, 0, size.width * 0.17, size.height * 0.03,
size.width * 0.17, size.height * 0.07);
path.cubicTo(size.width * 0.18, size.height * 0.1, size.width * 0.17,
size.height * 0.13, size.width * 0.15, size.height * 0.15);
path.cubicTo(size.width * 0.14, size.height * 0.17, size.width * 0.12,
size.height * 0.17, size.width * 0.1, size.height * 0.17);
path.cubicTo(size.width * 0.1, size.height * 0.17, size.width * 0.1,
size.height * 0.17, size.width * 0.1, size.height * 0.17);
path.cubicTo(size.width * 0.1, size.height * 0.17, size.width * 0.1,
size.height * 0.17, size.width * 0.1, size.height * 0.17);
canvas.drawPath(path, paint);
// Path number 15
paint.color = const Color(0xff00FFC2);
path = Path();
path.lineTo(size.width * 0.09, size.height * 0.01);
path.cubicTo(size.width * 0.13, size.height * 0.01, size.width * 0.16,
size.height * 0.03, size.width * 0.17, size.height * 0.07);
path.cubicTo(size.width * 0.18, size.height * 0.12, size.width * 0.16,
size.height * 0.17, size.width * 0.1, size.height * 0.17);
path.cubicTo(size.width * 0.1, size.height * 0.17, size.width * 0.09,
size.height * 0.17, size.width * 0.08, size.height * 0.17);
path.cubicTo(size.width * 0.01, size.height * 0.16, 0, size.height * 0.11,
size.width * 0.01, size.height * 0.07);
path.cubicTo(size.width * 0.01, size.height * 0.05, size.width * 0.03,
size.height * 0.02, size.width * 0.06, size.height * 0.01);
path.cubicTo(size.width * 0.06, size.height * 0.01, size.width * 0.07,
size.height * 0.01, size.width * 0.07, size.height * 0.01);
path.cubicTo(size.width * 0.08, size.height * 0.01, size.width * 0.09,
size.height * 0.01, size.width * 0.09, size.height * 0.01);
path.lineTo(size.width * 0.09, 0);
path.cubicTo(
size.width * 0.09, 0, size.width * 0.08, 0, size.width * 0.07, 0);
path.cubicTo(size.width * 0.07, 0, size.width * 0.06, size.height * 0.01,
size.width * 0.06, size.height * 0.01);
path.cubicTo(size.width * 0.03, size.height * 0.02, size.width * 0.01,
size.height * 0.04, 0, size.height * 0.07);
path.cubicTo(0, size.height * 0.1, 0, size.height * 0.12, size.width * 0.01,
size.height * 0.13);
path.cubicTo(size.width * 0.02, size.height * 0.16, size.width * 0.05,
size.height * 0.17, size.width * 0.08, size.height * 0.18);
path.cubicTo(size.width * 0.09, size.height * 0.18, size.width * 0.1,
size.height * 0.18, size.width * 0.1, size.height * 0.18);
path.cubicTo(size.width * 0.12, size.height * 0.18, size.width * 0.14,
size.height * 0.17, size.width * 0.16, size.height * 0.15);
path.cubicTo(size.width * 0.17, size.height * 0.13, size.width * 0.18,
size.height * 0.1, size.width * 0.18, size.height * 0.07);
path.cubicTo(size.width * 0.17, size.height * 0.03, size.width * 0.14, 0,
size.width * 0.09, 0);
path.cubicTo(
size.width * 0.09, 0, size.width * 0.09, 0, size.width * 0.09, 0);
path.cubicTo(
size.width * 0.09, 0, size.width * 0.09, 0, size.width * 0.09, 0);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return true;
}
}
class EyeLeftPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint();
Path path = Path();
paint.color = const Color(0xff000000);
path = Path();
path.lineTo(size.width * 0.08, size.height * 0.17);
path.cubicTo(size.width * 0.05, size.height * 0.17, size.width * 0.04,
size.height * 0.17, size.width * 0.02, size.height * 0.15);
path.cubicTo(size.width * 0.01, size.height * 0.13, 0, size.height * 0.1, 0,
size.height * 0.07);
path.cubicTo(size.width * 0.01, size.height * 0.03, size.width * 0.04, 0,
size.width * 0.08, 0);
path.cubicTo(size.width * 0.09, 0, size.width * 0.1, 0, size.width * 0.11,
size.height * 0.01);
path.cubicTo(size.width * 0.11, size.height * 0.01, size.width * 0.12,
size.height * 0.01, size.width * 0.12, size.height * 0.01);
path.cubicTo(size.width * 0.15, size.height * 0.02, size.width * 0.17,
size.height * 0.04, size.width * 0.17, size.height * 0.07);
path.cubicTo(size.width * 0.18, size.height * 0.11, size.width * 0.17,
size.height * 0.16, size.width * 0.1, size.height * 0.17);
path.cubicTo(size.width * 0.09, size.height * 0.17, size.width * 0.08,
size.height * 0.17, size.width * 0.08, size.height * 0.17);
path.cubicTo(size.width * 0.08, size.height * 0.17, size.width * 0.08,
size.height * 0.17, size.width * 0.08, size.height * 0.17);
canvas.drawPath(path, paint);
// Path number 11
paint.color = const Color(0xff00FFC2);
path = Path();
path.lineTo(size.width * 0.08, size.height * 0.01);
path.cubicTo(size.width * 0.09, size.height * 0.01, size.width * 0.1,
size.height * 0.01, size.width * 0.11, size.height * 0.01);
path.cubicTo(size.width * 0.11, size.height * 0.01, size.width * 0.12,
size.height * 0.01, size.width * 0.12, size.height * 0.01);
path.cubicTo(size.width * 0.15, size.height * 0.02, size.width * 0.17,
size.height * 0.05, size.width * 0.17, size.height * 0.07);
path.cubicTo(size.width * 0.17, size.height * 0.11, size.width * 0.17,
size.height * 0.16, size.width * 0.09, size.height * 0.17);
path.cubicTo(size.width * 0.09, size.height * 0.17, size.width * 0.08,
size.height * 0.17, size.width * 0.08, size.height * 0.17);
path.cubicTo(size.width * 0.02, size.height * 0.17, 0, size.height * 0.12,
size.width * 0.01, size.height * 0.07);
path.cubicTo(size.width * 0.01, size.height * 0.03, size.width * 0.05,
size.height * 0.01, size.width * 0.08, size.height * 0.01);
path.lineTo(size.width * 0.08, 0);
path.cubicTo(size.width * 0.08, 0, size.width * 0.08, size.height * 0.01,
size.width * 0.08, size.height * 0.01);
path.cubicTo(size.width * 0.08, size.height * 0.01, size.width * 0.08, 0,
size.width * 0.08, 0);
path.cubicTo(
size.width * 0.08, 0, size.width * 0.08, 0, size.width * 0.08, 0);
path.cubicTo(size.width * 0.04, 0, size.width * 0.01, size.height * 0.03, 0,
size.height * 0.07);
path.cubicTo(0, size.height * 0.1, 0, size.height * 0.13, size.width * 0.02,
size.height * 0.15);
path.cubicTo(size.width * 0.03, size.height * 0.17, size.width * 0.05,
size.height * 0.18, size.width * 0.08, size.height * 0.18);
path.cubicTo(size.width * 0.08, size.height * 0.18, size.width * 0.09,
size.height * 0.18, size.width * 0.1, size.height * 0.18);
path.cubicTo(size.width * 0.13, size.height * 0.17, size.width * 0.15,
size.height * 0.16, size.width * 0.17, size.height * 0.13);
path.cubicTo(size.width * 0.18, size.height * 0.12, size.width * 0.18,
size.height * 0.1, size.width * 0.18, size.height * 0.07);
path.cubicTo(size.width * 0.17, size.height * 0.04, size.width * 0.15,
size.height * 0.02, size.width * 0.12, size.height * 0.01);
path.cubicTo(size.width * 0.12, size.height * 0.01, size.width * 0.11, 0,
size.width * 0.11, 0);
path.cubicTo(
size.width * 0.1, 0, size.width * 0.09, 0, size.width * 0.08, 0);
path.cubicTo(
size.width * 0.08, 0, size.width * 0.08, 0, size.width * 0.08, 0);
path.cubicTo(
size.width * 0.08, 0, size.width * 0.08, 0, size.width * 0.08, 0);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return true;
}
}
class HelmetFirstPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint();
Path path = Path();
// Path number 19
paint.color = const Color(0xffF9CB7A);
path = Path();
path.lineTo(size.width * 0.56, size.height * 0.03);
path.cubicTo(size.width * 0.56, size.height * 0.03, size.width * 0.78,
size.height * 0.07, size.width * 0.75, size.height / 5);
path.cubicTo(size.width * 0.75, size.height / 5, size.width * 0.86,
size.height * 0.18, size.width * 0.93, size.height * 0.19);
path.cubicTo(size.width * 0.93, size.height * 0.19, size.width * 0.95,
-0.08, size.width * 0.56, size.height * 0.03);
path.cubicTo(size.width * 0.56, size.height * 0.03, size.width * 0.56,
size.height * 0.03, size.width * 0.56, size.height * 0.03);
canvas.drawPath(path, paint);
// Path number 20
paint.color = const Color(0xffF9CB7A);
path = Path();
path.lineTo(size.width * 0.01, size.height * 0.65);
path.cubicTo(size.width * 0.01, size.height * 0.65, size.width * 0.09,
size.height * 0.85, size.width * 0.22, size.height * 0.8);
path.cubicTo(size.width * 0.22, size.height * 0.8, size.width / 5,
size.height * 0.91, size.width * 0.23, size.height * 0.97);
path.cubicTo(size.width * 0.23, size.height * 0.97, -0.04,
size.height * 1.04, size.width * 0.01, size.height * 0.65);
path.cubicTo(size.width * 0.01, size.height * 0.65, size.width * 0.01,
size.height * 0.65, size.width * 0.01, size.height * 0.65);
canvas.drawPath(path, paint);
// Path number 21
paint.color = const Color(0xff999999);
path = Path();
path.lineTo(size.width * 0.24, size.height * 0.79);
path.cubicTo(size.width * 0.24, size.height * 0.79, size.width * 0.23,
size.height * 0.79, size.width * 0.22, size.height * 0.8);
path.cubicTo(size.width * 0.22, size.height * 0.8, size.width * 0.22,
size.height * 0.96, size.width * 0.24, size.height * 0.98);
path.cubicTo(size.width * 0.27, size.height, size.width * 0.26, size.height,
size.width * 0.26, size.height);
path.cubicTo(size.width * 0.26, size.height, size.width * 0.22,
size.height * 0.92, size.width * 0.24, size.height * 0.79);
path.cubicTo(size.width * 0.24, size.height * 0.79, size.width * 0.24,
size.height * 0.79, size.width * 0.24, size.height * 0.79);
canvas.drawPath(path, paint);
// Path number 22
paint.color = const Color(0xff4C4C4C);
path = Path();
path.lineTo(size.width * 0.36, size.height * 0.97);
path.cubicTo(size.width * 0.36, size.height * 0.97, size.width * 0.29,
size.height * 1.04, size.width * 0.26, size.height);
path.cubicTo(size.width * 0.22, size.height * 0.95, size.width * 0.22,
size.height * 0.81, size.width * 0.24, size.height * 0.79);
path.cubicTo(size.width / 4, size.height * 0.77, size.width * 0.29,
size.height * 0.74, size.width * 0.29, size.height * 0.74);
path.cubicTo(size.width * 0.29, size.height * 0.74, size.width * 0.31,
size.height * 0.89, size.width * 0.36, size.height * 0.97);
path.cubicTo(size.width * 0.36, size.height * 0.97, size.width * 0.36,
size.height * 0.97, size.width * 0.36, size.height * 0.97);
canvas.drawPath(path, paint);
// Path number 23
paint.color = const Color(0xff999999);
path = Path();
path.lineTo(size.width * 0.36, size.height * 0.97);
path.cubicTo(size.width * 0.36, size.height * 0.97, size.width * 0.38,
size.height * 0.97, size.width * 0.39, size.height * 0.95);
path.cubicTo(size.width * 0.39, size.height * 0.95, size.width * 0.3,
size.height * 0.81, size.width * 0.31, size.height * 0.73);
path.cubicTo(size.width * 0.31, size.height * 0.73, size.width * 0.29,
size.height * 0.72, size.width * 0.28, size.height * 0.74);
path.cubicTo(size.width * 0.28, size.height * 0.74, size.width * 0.28,
size.height * 0.86, size.width * 0.36, size.height * 0.97);
path.cubicTo(size.width * 0.36, size.height * 0.97, size.width * 0.36,
size.height * 0.97, size.width * 0.36, size.height * 0.97);
canvas.drawPath(path, paint);
// Path number 24
paint.color = const Color(0xff4C4C4C);
path = Path();
path.lineTo(size.width / 3, size.height * 0.56);
path.cubicTo(size.width / 3, size.height * 0.56, size.width * 0.24,
size.height * 0.79, size.width * 0.4, size.height * 0.98);
path.cubicTo(size.width * 0.4, size.height * 0.98, size.width * 0.4,
size.height * 0.91, size.width * 0.52, size.height * 0.72);
path.cubicTo(size.width * 0.52, size.height * 0.72, size.width / 3,
size.height * 0.56, size.width / 3, size.height * 0.56);
path.cubicTo(size.width / 3, size.height * 0.56, size.width / 3,
size.height * 0.56, size.width / 3, size.height * 0.56);
canvas.drawPath(path, paint);
// Path number 25
paint.color = const Color(0xff4C4C4C);
path = Path();
path.lineTo(size.width * 0.55, size.height * 0.7);
path.cubicTo(size.width * 0.55, size.height * 0.7, size.width * 0.38,
size.height * 0.96, size.width * 0.41, size.height * 1.05);
path.cubicTo(size.width * 0.41, size.height * 1.05, size.width * 0.41,
size.height * 1.1, size.width * 0.44, size.height * 1.08);
path.cubicTo(size.width * 0.44, size.height * 1.08, size.width * 0.47,
size.height * 1.08, size.width * 0.47, size.height * 1.08);
path.cubicTo(size.width * 0.47, size.height * 1.08, size.width * 0.52,
size.height * 0.88, size.width * 0.61, size.height * 0.78);
path.cubicTo(size.width * 0.61, size.height * 0.78, size.width * 0.71,
size.height * 0.89, size.width * 0.71, size.height * 0.89);
path.cubicTo(size.width * 0.71, size.height * 0.89, size.width * 0.84,
size.height * 0.84, size.width * 0.84, size.height * 0.84);
path.cubicTo(size.width * 0.84, size.height * 0.84, size.width * 0.86,
size.height * 0.81, size.width * 0.86, size.height * 0.81);
path.cubicTo(size.width * 0.86, size.height * 0.81, size.width * 0.37,
size.height * 0.41, size.width * 0.37, size.height * 0.41);
path.cubicTo(size.width * 0.37, size.height * 0.41, size.width * 0.3,
size.height * 0.46, size.width * 0.35, size.height * 0.53);
path.cubicTo(size.width * 0.35, size.height * 0.53, size.width * 0.55,
size.height * 0.7, size.width * 0.55, size.height * 0.7);
path.cubicTo(size.width * 0.55, size.height * 0.7, size.width * 0.55,
size.height * 0.7, size.width * 0.55, size.height * 0.7);
canvas.drawPath(path, paint);
// Path number 26
paint.color = const Color(0xff999999);
path = Path();
path.lineTo(size.width * 0.41, size.height * 1.05);
path.cubicTo(size.width * 0.41, size.height * 1.05, size.width * 0.34,
size.height, size.width * 0.52, size.height * 0.72);
path.cubicTo(size.width * 0.52, size.height * 0.72, size.width / 3,
size.height * 0.56, size.width / 3, size.height * 0.56);
path.cubicTo(size.width / 3, size.height * 0.56, size.width / 3,
size.height * 0.55, size.width * 0.35, size.height * 0.53);
path.cubicTo(size.width * 0.35, size.height * 0.53, size.width * 0.55,
size.height * 0.7, size.width * 0.55, size.height * 0.7);
path.cubicTo(size.width * 0.55, size.height * 0.7, size.width * 0.39,
size.height * 0.94, size.width * 0.41, size.height * 1.05);
path.cubicTo(size.width * 0.41, size.height * 1.05, size.width * 0.41,
size.height * 1.05, size.width * 0.41, size.height * 1.05);
canvas.drawPath(path, paint);
// Path number 27
paint.color = const Color(0xff17);
path = Path();
path.lineTo(size.width * 0.56, size.height * 0.03);
path.cubicTo(size.width * 0.56, size.height * 0.03, size.width * 0.78,
size.height * 0.07, size.width * 0.75, size.height / 5);
path.cubicTo(size.width * 0.75, size.height / 5, size.width * 0.86,
size.height * 0.18, size.width * 0.93, size.height * 0.19);
path.cubicTo(size.width * 0.93, size.height * 0.19, size.width * 0.95,
-0.08, size.width * 0.56, size.height * 0.03);
path.cubicTo(size.width * 0.56, size.height * 0.03, size.width * 0.56,
size.height * 0.03, size.width * 0.56, size.height * 0.03);
canvas.drawPath(path, paint);
// Path number 28
paint.color = const Color(0xff18);
path = Path();
path.lineTo(size.width * 0.01, size.height * 0.65);
path.cubicTo(size.width * 0.01, size.height * 0.65, size.width * 0.09,
size.height * 0.85, size.width * 0.22, size.height * 0.8);
path.cubicTo(size.width * 0.22, size.height * 0.8, size.width / 5,
size.height * 0.91, size.width * 0.23, size.height * 0.97);
path.cubicTo(size.width * 0.23, size.height * 0.97, -0.04,
size.height * 1.04, size.width * 0.01, size.height * 0.65);
path.cubicTo(size.width * 0.01, size.height * 0.65, size.width * 0.01,
size.height * 0.65, size.width * 0.01, size.height * 0.65);
canvas.drawPath(path, paint);
// Path number 29
paint.color = const Color(0xff999999);
path = Path();
path.lineTo(size.width * 0.74, size.height * 0.22);
path.cubicTo(size.width * 0.74, size.height * 0.22, size.width * 0.74,
size.height * 0.22, size.width * 0.75, size.height / 5);
path.cubicTo(size.width * 0.75, size.height / 5, size.width * 0.91,
size.height * 0.18, size.width * 0.94, size.height / 5);
path.cubicTo(size.width * 0.96, size.height * 0.22, size.width * 0.96,
size.height * 0.22, size.width * 0.96, size.height * 0.22);
path.cubicTo(size.width * 0.96, size.height * 0.22, size.width * 0.87,
size.height * 0.19, size.width * 0.74, size.height * 0.22);
path.cubicTo(size.width * 0.74, size.height * 0.22, size.width * 0.74,
size.height * 0.22, size.width * 0.74, size.height * 0.22);
canvas.drawPath(path, paint);
// Path number 30
paint.color = const Color(0xff4C4C4C);
path = Path();
path.lineTo(size.width * 0.95, size.height * 0.31);
path.cubicTo(size.width * 0.95, size.height * 0.31, size.width,
size.height * 0.24, size.width * 0.95, size.height / 5);
path.cubicTo(size.width * 0.9, size.height * 0.19, size.width * 0.76,
size.height / 5, size.width * 0.74, size.height * 0.22);
path.cubicTo(size.width * 0.73, size.height * 0.24, size.width * 0.7,
size.height * 0.28, size.width * 0.7, size.height * 0.28);
path.cubicTo(size.width * 0.7, size.height * 0.28, size.width * 0.86,
size.height * 0.27, size.width * 0.95, size.height * 0.31);
path.cubicTo(size.width * 0.95, size.height * 0.31, size.width * 0.95,
size.height * 0.31, size.width * 0.95, size.height * 0.31);
canvas.drawPath(path, paint);
// Path number 31
paint.color = const Color(0xff999999);
path = Path();
path.lineTo(size.width * 0.95, size.height * 0.31);
path.cubicTo(size.width * 0.95, size.height * 0.31, size.width * 0.95,
size.height / 3, size.width * 0.92, size.height * 0.34);
path.cubicTo(size.width * 0.92, size.height * 0.34, size.width * 0.77,
size.height * 0.28, size.width * 0.69, size.height * 0.3);
path.cubicTo(size.width * 0.69, size.height * 0.3, size.width * 0.67,
size.height * 0.29, size.width * 0.7, size.height * 0.28);
path.cubicTo(size.width * 0.7, size.height * 0.28, size.width * 0.82,
size.height * 0.26, size.width * 0.95, size.height * 0.31);
path.cubicTo(size.width * 0.95, size.height * 0.31, size.width * 0.95,
size.height * 0.31, size.width * 0.95, size.height * 0.31);
canvas.drawPath(path, paint);
// Path number 32
paint.color = const Color(0xff4C4C4C);
path = Path();
path.lineTo(size.width * 0.52, size.height * 0.35);
path.cubicTo(size.width * 0.52, size.height * 0.35, size.width * 0.74,
size.height * 0.22, size.width * 0.96, size.height * 0.35);
path.cubicTo(size.width * 0.96, size.height * 0.35, size.width * 0.89,
size.height * 0.36, size.width * 0.71, size.height / 2);
path.cubicTo(size.width * 0.71, size.height / 2, size.width * 0.52,
size.height * 0.35, size.width * 0.52, size.height * 0.35);
path.cubicTo(size.width * 0.52, size.height * 0.35, size.width * 0.52,
size.height * 0.35, size.width * 0.52, size.height * 0.35);
canvas.drawPath(path, paint);
// Path number 33
paint.color = const Color(0xff4C4C4C);
path = Path();
path.lineTo(size.width * 0.7, size.height * 0.54);
path.cubicTo(size.width * 0.7, size.height * 0.54, size.width * 0.94,
size.height * 0.34, size.width * 1.04, size.height * 0.34);
path.cubicTo(size.width * 1.04, size.height * 0.34, size.width * 1.09,
size.height * 0.34, size.width * 1.08, size.height * 0.37);
path.cubicTo(size.width * 1.08, size.height * 0.37, size.width * 1.07,
size.height * 0.4, size.width * 1.07, size.height * 0.4);
path.cubicTo(size.width * 1.07, size.height * 0.4, size.width * 0.88,
size.height * 0.47, size.width * 0.78, size.height * 0.58);
path.cubicTo(size.width * 0.78, size.height * 0.58, size.width * 0.91,
size.height * 0.65, size.width * 0.91, size.height * 0.65);
path.cubicTo(size.width * 0.91, size.height * 0.65, size.width * 0.89,
size.height * 0.79, size.width * 0.89, size.height * 0.79);
path.cubicTo(size.width * 0.89, size.height * 0.79, size.width * 0.86,
size.height * 0.81, size.width * 0.86, size.height * 0.81);
path.cubicTo(size.width * 0.86, size.height * 0.81, size.width * 0.37,
size.height * 0.41, size.width * 0.37, size.height * 0.41);
path.cubicTo(size.width * 0.37, size.height * 0.41, size.width * 0.41,
size.height / 3, size.width * 0.49, size.height * 0.37);
path.cubicTo(size.width * 0.49, size.height * 0.37, size.width * 0.7,
size.height * 0.54, size.width * 0.7, size.height * 0.54);
path.cubicTo(size.width * 0.7, size.height * 0.54, size.width * 0.7,
size.height * 0.54, size.width * 0.7, size.height * 0.54);
canvas.drawPath(path, paint);
// Path number 34
paint.color = const Color(0xff999999);
path = Path();
path.lineTo(size.width * 1.04, size.height * 0.34);
path.cubicTo(size.width * 1.04, size.height * 0.34, size.width,
size.height * 0.28, size.width * 0.71, size.height / 2);
path.cubicTo(size.width * 0.71, size.height / 2, size.width * 0.52,
size.height * 0.35, size.width * 0.52, size.height * 0.35);
path.cubicTo(size.width * 0.52, size.height * 0.35, size.width / 2,
size.height * 0.35, size.width * 0.49, size.height * 0.37);
path.cubicTo(size.width * 0.49, size.height * 0.37, size.width * 0.7,
size.height * 0.54, size.width * 0.7, size.height * 0.54);
path.cubicTo(size.width * 0.7, size.height * 0.54, size.width * 0.92,
size.height * 0.35, size.width * 1.04, size.height * 0.34);
path.cubicTo(size.width * 1.04, size.height * 0.34, size.width * 1.04,
size.height * 0.34, size.width * 1.04, size.height * 0.34);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return true;
}
}
class WingLeftPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint();
Path path = Path();
// Path number 4
// Wing left
paint.color = const Color(0xff3FB7EB);
path = Path();
path.lineTo(size.width * 0.34, size.height * 0.61);
path.cubicTo(size.width * 0.34, size.height * 0.61, size.width / 4,
size.height * 0.57, size.width / 4, size.height * 0.61);
path.cubicTo(size.width / 4, size.height * 0.66, size.width * 0.23,
size.height * 0.68, size.width * 0.34, size.height * 0.79);
path.cubicTo(size.width * 0.44, size.height * 0.89, size.width * 0.54,
size.height * 0.93, size.width * 0.69, size.height * 0.93);
path.cubicTo(size.width * 0.69, size.height * 0.93, size.width * 0.59,
size.height * 0.78, size.width * 0.65, size.height * 0.57);
path.cubicTo(size.width * 0.65, size.height * 0.57, size.width * 0.55,
size.height * 0.45, size.width * 0.55, size.height * 0.41);
path.cubicTo(size.width * 0.55, size.height * 0.38, size.width * 0.51,
size.height * 0.28, size.width * 0.45, size.height * 0.29);
path.cubicTo(size.width * 0.39, size.height * 0.3, size.width * 0.41,
size.height * 0.41, size.width * 0.41, size.height * 0.41);
path.cubicTo(size.width * 0.41, size.height * 0.41, size.width * 0.35,
size.height / 3, size.width * 0.32, size.height * 0.36);
path.cubicTo(size.width * 0.28, size.height * 0.38, size.width * 0.27,
size.height * 0.52, size.width * 0.34, size.height * 0.61);
path.cubicTo(size.width * 0.34, size.height * 0.61, size.width * 0.34,
size.height * 0.61, size.width * 0.34, size.height * 0.61);
canvas.drawPath(path, paint);
// Path number 5
paint.color = const Color(0xff51C6E5);
path = Path();
path.lineTo(size.width * 0.46, size.height * 0.52);
path.cubicTo(size.width * 0.46, size.height * 0.52, size.width * 0.43,
size.height * 0.52, size.width * 0.41, size.height * 0.6);
path.cubicTo(size.width * 0.41, size.height * 0.6, size.width * 0.41,
size.height * 0.68, size.width * 0.44, size.height * 0.7);
path.cubicTo(size.width * 0.48, size.height * 0.73, size.width * 0.55,
size.height * 0.66, size.width * 0.54, size.height * 0.61);
path.cubicTo(size.width * 0.53, size.height * 0.56, size.width * 0.49,
size.height * 0.52, size.width * 0.46, size.height * 0.52);
path.cubicTo(size.width * 0.46, size.height * 0.52, size.width * 0.46,
size.height * 0.52, size.width * 0.46, size.height * 0.52);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return true;
}
}
class HornFirstPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint();
Path path = Path();
paint.color = const Color(0xff055799);
path = Path();
path.lineTo(size.width * 0.15, size.height * 0.13);
path.cubicTo(size.width * 0.17, size.height * 0.17, size.width / 5,
size.height * 0.23, size.width / 4, size.height * 0.29);
path.cubicTo(size.width * 0.38, size.height * 0.49, size.width * 0.65,
size.height * 0.82, size.width * 1.08, size.height * 1.06);
path.cubicTo(size.width * 1.07, size.height * 1.08, size.width * 1.06,
size.height * 1.11, size.width * 1.06, size.height * 1.13);
path.cubicTo(size.width * 0.78, size.height * 1.09, size.width * 0.38,
size.height, size.width * 0.13, size.height * 0.83);
path.cubicTo(size.width * 0.1, size.height * 0.73, size.width * 0.03,
size.height * 0.48, size.width * 0.15, size.height * 0.13);
path.cubicTo(size.width * 0.15, size.height * 0.13, size.width * 0.15,
size.height * 0.13, size.width * 0.15, size.height * 0.13);
canvas.drawPath(path, paint);
paint.color = const Color(0xff055799);
path = Path();
path.lineTo(size.width * 1.11, size.height * 1.14);
path.cubicTo(size.width * 1.11, size.height * 1.11, size.width * 1.12,
size.height * 1.09, size.width * 1.13, size.height * 1.08);
path.cubicTo(size.width * 1.18, size.height * 1.1, size.width * 1.23,
size.height * 1.13, size.width * 1.29, size.height * 1.15);
path.cubicTo(size.width * 1.28, size.height * 1.15, size.width * 1.28,
size.height * 1.15, size.width * 1.28, size.height * 1.15);
path.cubicTo(size.width * 1.23, size.height * 1.15, size.width * 1.17,
size.height * 1.14, size.width * 1.11, size.height * 1.14);
path.cubicTo(size.width * 1.11, size.height * 1.14, size.width * 1.11,
size.height * 1.14, size.width * 1.11, size.height * 1.14);
canvas.drawPath(path, paint);
paint.color = const Color(0xff07C6F9);
path = Path();
path.lineTo(size.width * 1.07, size.height * 1.13);
path.cubicTo(size.width * 1.07, size.height * 1.13, size.width * 1.07,
size.height * 1.13, size.width * 1.07, size.height * 1.12);
path.cubicTo(size.width * 1.07, size.height * 1.11, size.width * 1.07,
size.height * 1.09, size.width * 1.08, size.height * 1.07);
path.cubicTo(size.width * 1.09, size.height * 1.07, size.width * 1.09,
size.height * 1.06, size.width * 1.09, size.height * 1.06);
path.cubicTo(size.width * 1.11, size.height * 1.03, size.width * 1.12,
size.height * 1.05, size.width * 1.11, size.height * 1.06);
path.cubicTo(size.width * 1.11, size.height * 1.06, size.width * 1.1,
size.height * 1.06, size.width * 1.1, size.height * 1.07);
path.cubicTo(size.width * 1.1, size.height * 1.07, size.width * 1.1,
size.height * 1.07, size.width * 1.1, size.height * 1.08);
path.cubicTo(size.width * 1.09, size.height * 1.09, size.width * 1.08,
size.height * 1.11, size.width * 1.08, size.height * 1.13);
path.cubicTo(size.width * 1.08, size.height * 1.13, size.width * 1.08,
size.height * 1.13, size.width * 1.08, size.height * 1.14);
path.cubicTo(size.width * 1.08, size.height * 1.14, size.width * 1.08,
size.height * 1.15, size.width * 1.08, size.height * 1.15);
path.cubicTo(size.width * 1.09, size.height * 1.16, size.width * 1.09,
size.height * 1.16, size.width * 1.08, size.height * 1.16);
path.cubicTo(size.width * 1.07, size.height * 1.15, size.width * 1.07,
size.height * 1.14, size.width * 1.07, size.height * 1.13);
path.cubicTo(size.width * 1.07, size.height * 1.13, size.width * 1.07,
size.height * 1.13, size.width * 1.07, size.height * 1.13);
canvas.drawPath(path, paint);
// Path number 4
paint.color = const Color(0xff07C6F9);
path = Path();
path.lineTo(size.width * 1.09, size.height * 1.14);
path.cubicTo(size.width * 1.09, size.height * 1.13, size.width * 1.09,
size.height * 1.13, size.width * 1.09, size.height * 1.13);
path.cubicTo(size.width * 1.09, size.height * 1.12, size.width * 1.09,
size.height * 1.1, size.width * 1.1, size.height * 1.08);
path.cubicTo(size.width * 1.11, size.height * 1.08, size.width * 1.11,
size.height * 1.08, size.width * 1.11, size.height * 1.07);
path.cubicTo(size.width * 1.13, size.height * 1.05, size.width * 1.14,
size.height * 1.06, size.width * 1.13, size.height * 1.07);
path.cubicTo(size.width * 1.13, size.height * 1.07, size.width * 1.12,
size.height * 1.08, size.width * 1.12, size.height * 1.08);
path.cubicTo(size.width * 1.12, size.height * 1.08, size.width * 1.12,
size.height * 1.08, size.width * 1.12, size.height * 1.09);
path.cubicTo(size.width * 1.11, size.height * 1.1, size.width * 1.1,
size.height * 1.11, size.width * 1.1, size.height * 1.13);
path.cubicTo(size.width * 1.1, size.height * 1.13, size.width * 1.1,
size.height * 1.14, size.width * 1.1, size.height * 1.14);
path.cubicTo(size.width * 1.1, size.height * 1.15, size.width * 1.1,
size.height * 1.15, size.width * 1.1, size.height * 1.15);
path.cubicTo(size.width * 1.11, size.height * 1.16, size.width * 1.11,
size.height * 1.17, size.width * 1.1, size.height * 1.16);
path.cubicTo(size.width * 1.09, size.height * 1.16, size.width * 1.09,
size.height * 1.15, size.width * 1.09, size.height * 1.14);
path.cubicTo(size.width * 1.09, size.height * 1.14, size.width * 1.09,
size.height * 1.14, size.width * 1.09, size.height * 1.14);
canvas.drawPath(path, paint);
// Path number 5
paint.color = const Color(0xff055799);
path = Path();
path.lineTo(size.width * 0.07, 0);
path.cubicTo(size.width * 0.07, 0, size.width * 0.08, size.height * 0.03,
size.width * 0.11, size.height * 0.07);
path.cubicTo(-0.01, size.height * 0.44, size.width * 0.06,
size.height * 0.71, size.width * 0.09, size.height * 0.81);
path.cubicTo(size.width * 0.08, size.height * 0.8, size.width * 0.08,
size.height * 0.8, size.width * 0.07, size.height * 0.79);
path.cubicTo(size.width * 0.07, size.height * 0.79, -0.09,
size.height * 0.49, size.width * 0.07, 0);
path.cubicTo(
size.width * 0.07, 0, size.width * 0.07, 0, size.width * 0.07, 0);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment