source: Dev/branches/jQueryUI/client/d3/src/svg/area.js @ 249

Last change on this file since 249 was 249, checked in by hendrikvanantwerpen, 13 years ago

This one's for Subversion, because it's so close...

First widget (stripped down sequencer).
Seperated client and server code in two direcotry trees.

File size: 1.7 KB
Line 
1function d3_svg_area(projection) {
2  var x0 = d3_svg_lineX,
3      x1 = d3_svg_lineX,
4      y0 = 0,
5      y1 = d3_svg_lineY,
6      interpolate = "linear",
7      interpolator = d3_svg_lineInterpolators[interpolate],
8      tension = .7;
9
10  function area(d) {
11    if (d.length < 1) return null;
12    var points0 = d3_svg_linePoints(this, d, x0, y0),
13        points1 = d3_svg_linePoints(this, d, x0 === x1 ? d3_svg_areaX(points0) : x1, y0 === y1 ? d3_svg_areaY(points0) : y1);
14    return "M" + interpolator(projection(points1), tension)
15         + "L" + interpolator(projection(points0.reverse()), tension)
16         + "Z";
17  }
18
19  area.x = function(x) {
20    if (!arguments.length) return x1;
21    x0 = x1 = x;
22    return area;
23  };
24
25  area.x0 = function(x) {
26    if (!arguments.length) return x0;
27    x0 = x;
28    return area;
29  };
30
31  area.x1 = function(x) {
32    if (!arguments.length) return x1;
33    x1 = x;
34    return area;
35  };
36
37  area.y = function(y) {
38    if (!arguments.length) return y1;
39    y0 = y1 = y;
40    return area;
41  };
42
43  area.y0 = function(y) {
44    if (!arguments.length) return y0;
45    y0 = y;
46    return area;
47  };
48
49  area.y1 = function(y) {
50    if (!arguments.length) return y1;
51    y1 = y;
52    return area;
53  };
54
55  area.interpolate = function(x) {
56    if (!arguments.length) return interpolate;
57    interpolator = d3_svg_lineInterpolators[interpolate = x];
58    return area;
59  };
60
61  area.tension = function(x) {
62    if (!arguments.length) return tension;
63    tension = x;
64    return area;
65  };
66
67  return area;
68}
69
70d3.svg.area = function() {
71  return d3_svg_area(Object);
72};
73
74function d3_svg_areaX(points) {
75  return function(d, i) {
76    return points[i][0];
77  };
78}
79
80function d3_svg_areaY(points) {
81  return function(d, i) {
82    return points[i][1];
83  };
84}
Note: See TracBrowser for help on using the repository browser.