공부방/Flutter

Flutter 원으로 피라미드 그리기 (flutter Draw a Pyramid with Circles)

soycrab 2023. 6. 23. 16:35

그냥 아무 이유 없이 도형 그리기 

 

구현 코드 

import 'package:flutter/material.dart';

class CirclePyramidPainter extends CustomPainter {
  final int pyramidSize;
  final double baseRadius;

  CirclePyramidPainter({required this.pyramidSize, required this.baseRadius});

  @override
  void paint(Canvas canvas, Size size) {
    final paint = Paint()..color = Colors.blue;

    for (int level = 0; level < pyramidSize; level++) {
      final levelOffset = (pyramidSize - level - 1) * (baseRadius *2)  + (level * (baseRadius/3.7));

      for (int index = 0; index <= level; index++) {
        final xPos = size.width / 2 - (level * (baseRadius)) + (index * (baseRadius*2));
        final yPos = size.height - levelOffset;

        final center = Offset(xPos, yPos);
        canvas.drawCircle(center, baseRadius, paint);
      }
    }
  }

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

 

실행 코드 

Container(
              width: 900,
              height: 900,
                child: Center(
                  child: CustomPaint(
                    painter: CirclePyramidPainter(
                      pyramidSize: 5, // 피라미드의 층수 조정
                      baseRadius: 20.0, // 기본 원의 반지름 조정
                    ),
                  ),
                )
            )​

 

 

결과 화면 

반응형