source: Dev/trunk/src/client/dojox/gfx/demos/circles.html

Last change on this file was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 2.2 KB
Line 
1<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
2<head>
3<title>dojox.gfx: 100 draggable circles</title>
4<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5<style type="text/css">
6        @import "../../../dojo/resources/dojo.css";
7        @import "../../../dijit/tests/css/dijitTests.css";
8</style>
9<script type="text/javascript" src="../../../dojo/dojo.js"></script>
10<script type="text/javascript">
11
12dojo.require("dojox.gfx");
13dojo.require("dojox.gfx.move");
14
15var container = null,
16        surface = null,
17        surface_size = null;
18
19function getRand(from, to){
20        return Math.random() * (to - from) + from;
21}
22
23var skew_stat_factor = 15;
24
25function getRandSkewed(from, to){
26        // let skew stats to smaller values
27        var seed = 0;
28        for(var i = 0; i < skew_stat_factor; ++i){
29                seed += Math.random();
30        }
31        seed = 2 * Math.abs(seed / skew_stat_factor - 0.5);
32        return seed * (to - from) + from;
33}
34
35function randColor(alpha){
36        var red   = Math.floor(getRand(0, 255)),
37                green = Math.floor(getRand(0, 255)),
38                blue  = Math.floor(getRand(0, 255)),
39                opacity = alpha ? getRand(0.1, 1) : 1;
40        return [red, green, blue, opacity];
41}
42
43function makeCircleGrid(itemCount){
44        var minR = 10, maxR = surface_size.width / 3;
45        for(var j = 0; j < itemCount; ++j){
46                var r = getRandSkewed(minR, maxR),
47                        cx = getRand(r, surface_size.width  - r),
48                        cy = getRand(r, surface_size.height - r),
49                        shape = surface.createCircle({cx: cx, cy: cy, r: r})
50                                .setFill(randColor(true))
51                                .setStroke({color: randColor(true), width: getRand(0, 3)})
52                                ;
53                new dojox.gfx.Moveable(shape);
54        }
55}
56
57function initGfx(){
58        container = dojo.byId("gfx_holder");
59        surface = dojox.gfx.createSurface(container, 500, 500);
60        surface_size = {width: 500, height: 500};
61
62        makeCircleGrid(100);
63
64        // cancel text selection and text dragging
65        dojo.connect(container, "ondragstart",   dojo, "stopEvent");
66        dojo.connect(container, "onselectstart", dojo, "stopEvent");
67}
68
69dojo.addOnLoad(initGfx);
70
71</script>
72
73<style type="text/css">
74.movable { cursor: pointer; }
75</style>
76
77</head>
78<body>
79<h1>dojox.gfx: 100 draggable circles</h1>
80<p>Warning: Canvas renderer doesn't implement event handling.</p>
81<div id="gfx_holder" style="width: 500px; height: 500px;"></div>
82</body>
83</html>
Note: See TracBrowser for help on using the repository browser.