| // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| library painter; |
| |
| import 'dart:html'; |
| import 'dart:math'; |
| |
| import 'circle.dart'; |
| |
| const ORANGE = "orange"; |
| const RED = "red"; |
| const BLUE = "blue"; |
| const TAU = PI * 2; |
| |
| Element querySelector(String selector) => document.querySelector(selector); |
| |
| final canvas = querySelector("#canvas") as CanvasElement; |
| final context = canvas.getContext('2d') as CanvasRenderingContext2D; |
| |
| abstract class CirclePainter implements Circle { |
| // This demonstrates a field in a mixin. |
| String color = ORANGE; |
| |
| /// Draw a small circle representing a seed centered at (x,y). |
| void draw(CanvasRenderingContext2D context) { |
| context |
| ..beginPath() |
| ..lineWidth = 2 |
| ..fillStyle = color |
| ..strokeStyle = color |
| ..arc(x, y, radius, 0, TAU, false) |
| ..fill() |
| ..closePath() |
| ..stroke(); |
| } |
| } |