25 lines
862 B
Dart
25 lines
862 B
Dart
import 'dart:math';
|
|
import 'dart:ui';
|
|
|
|
Path drawPath(Size size) {
|
|
// Method to convert degree to radians
|
|
double degToRad(double deg) => deg * (pi / 180.0);
|
|
|
|
const numberOfPoints = 5;
|
|
final halfWidth = size.width / 2;
|
|
final externalRadius = halfWidth;
|
|
final internalRadius = halfWidth / 2.5;
|
|
final degreesPerStep = degToRad(360 / numberOfPoints);
|
|
final halfDegreesPerStep = degreesPerStep / 2;
|
|
final path = Path();
|
|
final fullAngle = degToRad(360);
|
|
path.moveTo(size.width, halfWidth);
|
|
|
|
for (double step = 0; step < fullAngle; step += degreesPerStep) {
|
|
path.lineTo(halfWidth + externalRadius * cos(step),
|
|
halfWidth + externalRadius * sin(step));
|
|
path.lineTo(halfWidth + internalRadius * cos(step + halfDegreesPerStep),
|
|
halfWidth + internalRadius * sin(step + halfDegreesPerStep));
|
|
}
|
|
return path;
|
|
} |