Yin and yang: Difference between revisions

Content added Content deleted
m (→‎Flutter: minimized)
Line 2,187: Line 2,187:
const color = [Colors.black, Colors.white];
const color = [Colors.black, Colors.white];


Container cR(int iColor, double r, {Widget? child, bool main = false}) => Container(
Widget cR(int iColor, double r, {Widget? child}) => DecoratedBox(
decoration: ShapeDecoration(color: color[iColor], shape: const CircleBorder()),
decoration: BoxDecoration(color: color[iColor], shape: BoxShape.circle),
child: SizedBox.square(dimension: r * 2, child: Center(child: child)));
constraints: BoxConstraints.tight(Size.fromRadius(r)),
clipBehavior: main ? Clip.hardEdge : Clip.none,
margin: main ? const EdgeInsets.all(5) : null,
child: Center(child: child));


Container yinYang(double r, [double th = 1.0]) => cR(0, r + th,
Widget yinYang(double r, [double th = 1.0]) => Padding(
padding: const EdgeInsets.all(5),
main: true,
child: cR(1, r,
child: ClipOval(
child: Stack(alignment: Alignment.center, children: [
child: cR(0, r + th,
Container(color: color[0], margin: EdgeInsets.only(left: r)),
child: cR(1, r,
Column(children: List.generate(2, (i) => cR(1 - i, r / 2, child: cR(i, r / 6))))
child: Stack(alignment: Alignment.center, children: [
Container(color: color[0], margin: EdgeInsets.only(left: r)),
])));
Column(children: List.generate(2, (i) => cR(1 - i, r / 2, child: cR(i, r / 6))))
])))));


void main() => runApp(MaterialApp(
void main() => runApp(MaterialApp(