Skip to content

Instantly share code, notes, and snippets.

@BLKKKBVSIK
Created October 7, 2020 21:11
Show Gist options
  • Select an option

  • Save BLKKKBVSIK/e11a96f7d5fff50b4b12996331c87ac6 to your computer and use it in GitHub Desktop.

Select an option

Save BLKKKBVSIK/e11a96f7d5fff50b4b12996331c87ac6 to your computer and use it in GitHub Desktop.

Revisions

  1. BLKKKBVSIK created this gist Oct 7, 2020.
    64 changes: 64 additions & 0 deletions main.dart
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,64 @@
    import 'dart:math';
    import 'dart:ui';
    import 'package:flutter/rendering.dart';
    import 'package:flutter/material.dart';

    void main() {
    runApp(
    MaterialApp(
    debugShowCheckedModeBanner: false,
    home: MyWidget(),
    ),
    );
    }
    class MyWidget extends StatefulWidget{
    @override
    MyWidgetState createState() => MyWidgetState();
    }
    class MyWidgetState extends State<MyWidget> {
    @override
    Widget build(BuildContext context) {
    return Scaffold(
    body: InkWell(
    onTap:(){
    setState((){

    });
    },
    child:CustomPaint(
    painter:Colored(),
    child: Container(),
    )),
    );
    }
    }

    class Colored extends CustomPainter {
    @override
    void paint(Canvas canvas, Size size) {
    final frames = 200;
    canvas.drawPaint(Paint()..color = Colors.teal);

    for (double i = 10; i < frames; i += .1) {
    canvas.translate(i % 50, i % 70);
    canvas.save();
    canvas.rotate(pi / i * 50);
    final area = Offset(i, i) & Size(i * 10, i * 10);
    final int tailFibers = (i * 5.1).toInt();
    for (double d = 0; d < area.width; d += tailFibers) {
    for (double e = 0; e < area.height; e += tailFibers) {
    final tailWidth = .7 + (i * .2 * Random().nextDouble());
    canvas.drawCircle(
    Offset(d, e),
    tailWidth,
    Paint()
    ..color = Colors.white.withOpacity(.5));
    }
    }
    canvas.restore();
    }
    }

    @override
    bool shouldRepaint(CustomPainter oldDelegate) => true;
    }