Skip to content

Commit 7cf0d33

Browse files
committed
FLUT-884481-[others][flutter]: Updated the Blog sample
1 parent 494761e commit 7cf0d33

File tree

1 file changed

+26
-24
lines changed

1 file changed

+26
-24
lines changed

lib/main.dart

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ class _WindmillChartState extends State<_WindmillChart> {
123123
yValueMapper: (_WindEnergy data, int index) => data.megawatt,
124124
animationDuration: 0,
125125
onCreateRenderer: (ChartSeries<_WindEnergy, String> series) {
126-
return _ColumnSeriesRenderer();
126+
return _CustomColumnSeriesRenderer();
127127
},
128128
),
129129
],
@@ -167,7 +167,8 @@ class _WindEnergy {
167167
}
168168

169169
// Custom renderer for column series
170-
class _ColumnSeriesRenderer extends ColumnSeriesRenderer<_WindEnergy, String> {
170+
class _CustomColumnSeriesRenderer
171+
extends ColumnSeriesRenderer<_WindEnergy, String> {
171172
@override
172173
ColumnSegment<_WindEnergy, String> createSegment() => _ColumnSegment();
173174
}
@@ -224,52 +225,53 @@ class _ColumnSegment extends ColumnSegment<_WindEnergy, String> {
224225
canvas.drawPath(_postPath, postFillPaint);
225226
canvas.drawPath(_postPath, postStrokePaint);
226227

228+
final Offset center = Offset(centerX, centerY);
229+
double bladeWidth = 20;
227230
double bladeLength =
228231
10 * (currentSegmentIndex < 3 ? 3 : currentSegmentIndex.toDouble());
229-
double bladeWidth = 20;
230232

231233
// Define the angles for the three blades in radians.
232234
double angle1 = 0;
233235
double angle2 = 120 * pi / 180;
234236
double angle3 = 240 * pi / 180;
235237

236238
// Draw first blade.
237-
_drawBlade(canvas, bladeLength, bladeWidth, centerX, centerY, angle1,
238-
bladeFillPaint, bladeStrokePaint);
239+
_drawBlade(canvas, center, angle1, bladeLength, bladeWidth, bladeFillPaint,
240+
bladeStrokePaint);
239241

240242
// Draw second blade.
241-
_drawBlade(canvas, bladeLength, bladeWidth, centerX, centerY, angle2,
242-
bladeFillPaint, bladeStrokePaint);
243+
_drawBlade(canvas, center, angle2, bladeLength, bladeWidth, bladeFillPaint,
244+
bladeStrokePaint);
243245

244246
// Draw third blade.
245-
_drawBlade(canvas, bladeLength, bladeWidth, centerX, centerY, angle3,
246-
bladeFillPaint, bladeStrokePaint);
247+
_drawBlade(canvas, center, angle3, bladeLength, bladeWidth, bladeFillPaint,
248+
bladeStrokePaint);
247249

248250
// Draws circle at the center of the windmill.
249-
canvas.drawCircle(
250-
Offset(centerX, centerY), 5, Paint()..color = Colors.white);
251+
canvas.drawCircle(center, 5, Paint()..color = Colors.white);
251252
}
252253

253254
// Helper method to draw each blade
254255
void _drawBlade(
255-
Canvas canvas,
256-
double bladeLength,
257-
double bladeWidth,
258-
double centerX,
259-
double centerY,
260-
double angle,
261-
Paint fillPaint,
262-
Paint strokePaint) {
256+
Canvas canvas,
257+
Offset center,
258+
double angle,
259+
double bladeLength,
260+
double bladeWidth,
261+
Paint fillPaint,
262+
Paint strokePaint,
263+
) {
263264
Matrix4 transformMatrix = Matrix4.identity()
264-
..translate(centerX, centerY)
265+
..translate(center.dx, center.dy)
265266
..rotateZ(angle);
266267

267-
Path bladePath = Path()
268+
final double halfWidth = bladeWidth / 2;
269+
final double quarterWidth = bladeWidth / 4;
270+
final Path bladePath = Path()
268271
..moveTo(0, 0)
269-
..cubicTo(bladeWidth / 4, -bladeLength, bladeWidth / 2, -bladeLength, 0,
270-
-bladeLength)
271272
..cubicTo(
272-
-bladeWidth / 4, -bladeLength, -bladeWidth / 2, -bladeLength, 0, 0);
273+
quarterWidth, -bladeLength, halfWidth, -bladeLength, 0, -bladeLength)
274+
..cubicTo(-quarterWidth, -bladeLength, -halfWidth, -bladeLength, 0, 0);
273275

274276
_bladesPath.addPath(bladePath, Offset.zero,
275277
matrix4: transformMatrix.storage);

0 commit comments

Comments
 (0)