Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(64)

Side by Side Diff: client/samples/sunflower/Sunflower.dart

Issue 8231031: Check for compile-time constants in DartCompiler (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Renamed CompileTimeConstTest to CTConst2Test Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #library('sunflower'); 5 #library('sunflower');
6 6
7 #import('dart:dom'); 7 #import('dart:dom');
8 8
9 #resource('sunflower.css'); 9 #resource('sunflower.css');
10 10
11 main() { 11 main() {
12 new Sunflower(); 12 new Sunflower();
13 } 13 }
14 14
15 class Sunflower { 15 class Sunflower {
16 16
17 Sunflower() { 17 Sunflower() {
18 PHI = (Math.sqrt(5)+1) / 2;
ngeoffray 2011/10/14 09:26:56 Nit: spaces around +
zundel 2011/10/14 20:59:52 Done.
18 var doc = window.document; 19 var doc = window.document;
19 20
20 HTMLCanvasElement canvas = doc.getElementById("canvas"); 21 HTMLCanvasElement canvas = doc.getElementById("canvas");
21 xc = yc = MAX_D / 2; 22 xc = yc = MAX_D / 2;
22 ctx = canvas.getContext("2d"); 23 ctx = canvas.getContext("2d");
23 24
24 HTMLInputElement slider = doc.getElementById("slider"); 25 HTMLInputElement slider = doc.getElementById("slider");
25 slider.onchange = (Event e) { 26 slider.onchange = (Event e) {
26 seeds = Math.parseInt(slider.value); 27 seeds = Math.parseInt(slider.value);
27 drawFrame(); 28 drawFrame();
28 }; 29 };
29 30
30 drawFrame(); 31 drawFrame();
31 } 32 }
32 33
33 // Draw the complete figure for the current number of seeds. 34 // Draw the complete figure for the current number of seeds.
34 void drawFrame() { 35 void drawFrame() {
35 ctx.clearRect(0, 0, MAX_D, MAX_D); 36 ctx.clearRect(0, 0, MAX_D, MAX_D);
36 for (var i=0; i<seeds; i++) { 37 for (var i=0; i<seeds; i++) {
37 var theta = i * PI2 / PHI; 38 var theta = i * TAU / PHI;
38 var r = Math.sqrt(i) * SCALE_FACTOR; 39 var r = Math.sqrt(i) * SCALE_FACTOR;
39 var x = xc + r * Math.cos(theta); 40 var x = xc + r * Math.cos(theta);
40 var y = yc - r * Math.sin(theta); 41 var y = yc - r * Math.sin(theta);
41 drawSeed(x,y); 42 drawSeed(x,y);
42 } 43 }
43 } 44 }
44 45
45 // Draw a small circle representing a seed centered at (x,y). 46 // Draw a small circle representing a seed centered at (x,y).
46 void drawSeed(num x, num y) { 47 void drawSeed(num x, num y) {
47 ctx.beginPath(); 48 ctx.beginPath();
48 ctx.setLineWidth(2); 49 ctx.setLineWidth(2);
49 ctx.setFillColor(ORANGE); 50 ctx.setFillColor(ORANGE);
50 ctx.setStrokeColor(ORANGE); 51 ctx.setStrokeColor(ORANGE);
51 ctx.arc(x, y, SEED_RADIUS, 0, PI2, false); 52 ctx.arc(x, y, SEED_RADIUS, 0, TAU, false);
52 ctx.fill(); 53 ctx.fill();
53 ctx.closePath(); 54 ctx.closePath();
54 ctx.stroke(); 55 ctx.stroke();
55 } 56 }
56 57
57 CanvasRenderingContext2D ctx; 58 CanvasRenderingContext2D ctx;
58 num xc, yc; 59 num xc, yc;
59 num seeds = 0; 60 num seeds = 0;
60 61
61 static final SEED_RADIUS = 2; 62 static final SEED_RADIUS = 2;
62 static final SCALE_FACTOR = 4; 63 static final SCALE_FACTOR = 4;
63 static final PI2 = Math.PI * 2; 64 static final TAU = Math.PI * 2;
64 static final PHI = (Math.sqrt(5)+1) / 2; 65 var PHI;
65 static final MAX_D = 300; 66 static final MAX_D = 300;
66 static final String ORANGE = "orange"; 67 static final String ORANGE = "orange";
67 68
68 } 69 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698