공부방/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, // 기본 원의 반지름 조정
),
),
)
)
결과 화면
반응형