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

Unified Diff: packages/charted/examples/selection/transitions_demo.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
Index: packages/charted/examples/selection/transitions_demo.dart
diff --git a/packages/charted/examples/selection/transitions_demo.dart b/packages/charted/examples/selection/transitions_demo.dart
new file mode 100644
index 0000000000000000000000000000000000000000..1585a5bd83b7f574904264e665a3c2aa27cdcf51
--- /dev/null
+++ b/packages/charted/examples/selection/transitions_demo.dart
@@ -0,0 +1,219 @@
+/*
+ * Copyright 2014 Google Inc. All rights reserved.
+ *
+ * Use of this source code is governed by a BSD-style
+ * license that can be found in the LICENSE file or at
+ * https://developers.google.com/open-source/licenses/bsd
+ */
+library charted.demos.transitions;
+
+import 'package:charted/charted.dart';
+
+void main() {
+ SelectionScope scope = new SelectionScope.selector('.wrapper');
+
+
+ Selection svg = scope.append('svg:svg')
+ ..style('width', '4000px')
+ ..style('height', '4000px');
+
+ Selection g1 = svg.append('g');
+ g1.attr('transform', 'translate(30, 30)');
+
+ SvgLine line = new SvgLine();
+
+ List lineData = [
+ [ [0, 10], [400, 10] ],
+ [ [0, 50], [400, 50] ],
+ [ [0, 90], [400, 90] ],
+ [ [0, 130], [400, 130] ]
+ ];
+ DataSelection lines = g1.selectAll('.line').data(lineData);
+
+ lines.enter.append('path');
+ lines
+ ..attrWithCallback('d', (d, i, e) => line.path(d, i, e))
+ ..classed('line');
+ lines.exit.remove();
+
+
+ var text1 = g1.append('text');
+ text1..attr('x', 0)
+ ..attr('y', 0)
+ ..text('Transition cubic-in-out');
+ var text2 = g1.append('text');
+ text2..attr('x', 0)
+ ..attr('y', 40)
+ ..text('Transition cubic-in');
+ var text3 = g1.append('text');
+ text3..attr('x', 0)
+ ..attr('y', 80)
+ ..text('Transition cubic-out');
+ var text4 = g1.append('text');
+ text4..attr('x', 0)
+ ..attr('y', 120)
+ ..text('Transition cubic-out-in');
+
+ var circle = g1.append('circle');
+ circle
+ ..attr('cx', 0)
+ ..attr('cy', 10)
+ ..attr('r', 4)
+ ..classed('circle');
+
+ // Doing transition for first circle with sub transition selection.
+ Transition t1 = new Transition(g1);
+ t1.duration(4000);
+ t1.select('.circle').attr('cx', 400);
+
+ var circle2 = g1.append('circle');
+ circle2
+ ..attr('cx', 0)
+ ..attr('cy', 50)
+ ..attr('r', 4);
+
+ Transition t2 = new Transition(circle2);
+ t2
+ ..ease = clampEasingFn(identityFunction(easeCubic()))
+ ..attr('cx', 400)
+ ..duration(4000);
+
+ var circle3 = g1.append('circle');
+ circle3
+ ..attr('cx', 0)
+ ..attr('cy', 90)
+ ..attr('r', 4);
+
+ Transition t3 = new Transition(circle3);
+ t3
+ ..ease = clampEasingFn(reverseEasingFn(easeCubic()))
+ ..attr('cx', 400)
+ ..duration(4000);
+
+ var circle4 = g1.append('circle');
+ circle4
+ ..attr('cx', 0)
+ ..attr('cy', 130)
+ ..attr('r', 4);
+
+ Transition t4 = new Transition(circle4);
+ t4
+ ..ease = clampEasingFn(reflectReverseEasingFn(easeCubic()))
+ ..attr('cx', 400)
+ ..duration(4000);
+
+
+ Color dotColor1 = new Color.fromRgba(10, 255, 0, 1.0);
+ Color dotColor2 = new Color.fromRgba(40, 0, 255, 1.0);
+ String shape1 = 'M50 100 L50 200 L100 200 Z';
+ String shape2 = 'M900 0 L750 200 L900 200 Z';
+
+ Selection g2 = svg.append('g');
+
+ var text5 = g2.append('text');
+ text5..attr('x', 0)
+ ..attr('y', 0)
+ ..text('Transition shape and color');
+
+ g2.attr('transform', 'translate(30, 200)');
+ g2.attr('width', '1000');
+ g2.attr('height', '400');
+ Selection shape = g2.append('path');
+ shape
+ ..attr('d', shape1)
+ ..attr('fill', dotColor1);
+
+ Transition t5 = new Transition(shape);
+ t5.duration(4000);
+ t5.attr('d', shape2);
+ t5.attr('fill', dotColor2);
+
+ Selection g3 = svg.append('g');
+ var text6 = g3.append('text');
+ text6..attr('x', 0)
+ ..attr('y', 0)
+ ..text('Transition delay');
+
+ g3.attr('transform', 'translate(30, 450)');
+ g3.attr('width', '1000');
+ g3.attr('height', '1000');
+
+ Selection rect = g3.append('rect');
+ rect
+ ..attr('x', 0)
+ ..attr('y', 10)
+ ..attr('width', 40)
+ ..attr('height', 40)
+ ..attr('fill', '#FF0000');
+
+ Transition t6 = new Transition(rect);
+ t6.duration(4000);
+ t6.delay(4000);
+ t6.attr('x', 400);
+ t6.attr('fill', '#00FF00');
+
+ var t7 = t6.transition();
+ t7.attr('y', 400);
+ t7.attr('fill', '#0000FF');
+
+ var t8 = t7.transition();
+ t8.attr('x', 0);
+ t8.attr('fill', '#FF00FF');
+
+ var t9 = t8.transition();
+ t9.attr('y', 10);
+ t9.attr('fill', '#FF0000');
+
+ Selection g4 = svg.append('g');
+ DataSelection bars =
+ g4.selectAll('bar').data([120, 160, 210, 260]);
+ g4.attr('transform', 'translate(30, 850)');
+ bars.enter.append('rect');
+ bars
+ ..attrWithCallback('x', (d,i,e) => i * 150)
+ ..attr('y', 350)
+ ..attr('width', 100)
+ ..attr('height', 0)
+ ..style('fill', '#6699FF');
+ bars.exit.remove();
+
+ var t = bars.transition();
+ t.duration(1000);
+ t.delayWithCallback((d, i, c) => i * 200);
+ t.attrTween('y', (d, i, attr) => createStringInterpolator(
+ attr, (350 - d).toString()));
+ t.attrTween('height', (d, i, attr) => createStringInterpolator(attr, d.toString()));
+
+ var color = t.transition();
+ color.delayWithCallback((d, i, c) => i * 200);
+ color.styleTween('fill',
+ (d, i, style) => createStringInterpolator(style, '#CC0088'));
+
+ Color hslColor1 = new Color.fromRgba(10, 255, 0, 1.0);
+ Color hslColor2 = new Color.fromRgba(40, 0, 255, 1.0);
+ Selection g5 = svg.append('g');
+ var text7 = g5.append('text');
+ text7..attr('x', 0)
+ ..attr('y', 0)
+ ..text('HSL Color Transition with Transform');
+
+ g5.attr('transform', 'translate(30, 1300)');
+
+ Selection rect2 = g5.append('rect');
+ rect2
+ ..attr('x', 0)
+ ..attr('y', 10)
+ ..attr('width', 200)
+ ..attr('height', 60);
+ rect2.transition()
+ ..attrTween('fill', (d, i, e) {
+ return createHslColorInterpolator(hslColor1, hslColor2);})
+ ..duration(2000);
+
+ rect2.transition()
+ ..attrTween('transform', (d, i, e) => createTransformInterpolator(
+ "translate(10,10)rotate(30)skewX(0.5)scale(1,1)",
+ "translate(100,100)rotate(360)skewX(45)scale(3,3)"))
+ ..duration(5000);
+}
+
« no previous file with comments | « packages/charted/examples/layout/treemap_demo.html ('k') | packages/charted/examples/selection/transitions_demo.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698