Skip to content

Commit 8eb9cf7

Browse files
archmojemilykl
authored andcommitted
revise label_texttemplate to handle log
1 parent efea57b commit 8eb9cf7

File tree

2 files changed

+84
-22
lines changed

2 files changed

+84
-22
lines changed
Lines changed: 84 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,88 @@
11
'use strict';
22

3+
function d2l(v, axis) {
4+
return (
5+
axis.type === 'log' ? v :
6+
axis.d2l(v)
7+
);
8+
}
9+
10+
function getPos(x, xa) {
11+
return (
12+
xa.type === 'date' ? x :
13+
d2l(x, xa)
14+
);
15+
}
16+
17+
function x0Fn(shape, xa) { return getPos(shape.x0, xa); }
18+
function x1Fn(shape, xa) { return getPos(shape.x1, xa); }
19+
function y0Fn(shape, xa, ya) { return getPos(shape.y0, ya); }
20+
function y1Fn(shape, xa, ya) { return getPos(shape.y1, ya); }
21+
22+
function dxFn(shape, xa) {
23+
return (
24+
d2l(shape.x1, xa) -
25+
d2l(shape.x0, xa)
26+
);
27+
}
28+
29+
function dyFn(shape, xa, ya) {
30+
return (
31+
d2l(shape.y1, ya) -
32+
d2l(shape.y0, ya)
33+
);
34+
}
35+
36+
function widthFn(shape, xa) {
37+
return Math.abs(
38+
d2l(shape.x1, xa) -
39+
d2l(shape.x0, xa)
40+
);
41+
}
42+
43+
function heightFn(shape, xa, ya) {
44+
return Math.abs(
45+
d2l(shape.y1, ya) -
46+
d2l(shape.y0, ya)
47+
);
48+
}
49+
50+
function lengthFn(shape, xa, ya) {
51+
return (shape.type !== 'line') ? undefined :
52+
Math.sqrt(
53+
Math.pow((d2l(shape.x1, xa) - d2l(shape.x0, xa)), 2) +
54+
Math.pow((d2l(shape.y1, ya) - d2l(shape.y0, ya)), 2)
55+
);
56+
}
57+
58+
function xcenterFn(shape, xa) {
59+
var val = (d2l(shape.x1, xa) + d2l(shape.x0, xa)) / 2;
60+
return (xa.type === 'date') ? xa.l2d(val) : val;
61+
}
62+
63+
function ycenterFn(shape, xa, ya) {
64+
var val = (d2l(shape.y1, ya) + d2l(shape.y0, ya)) / 2;
65+
return (ya.type === 'date') ? ya.l2d(val) : val;
66+
}
67+
68+
function slopeFn(shape, xa, ya) {
69+
return (
70+
(d2l(shape.y1, ya) - d2l(shape.y0, ya)) /
71+
(d2l(shape.x1, xa) - d2l(shape.x0, xa))
72+
);
73+
}
74+
375
module.exports = {
4-
x0: (function(shape, xa) { return (xa.type === 'date') ? shape.x0 : xa.d2l(shape.x0); }),
5-
x1: (function(shape, xa) { return (xa.type === 'date') ? shape.x1 : xa.d2l(shape.x1); }),
6-
y0: (function(shape, xa, ya) { return (ya.type === 'date') ? shape.y0 : ya.d2l(shape.y0); }),
7-
y1: (function(shape, xa, ya) { return (ya.type === 'date') ? shape.y1 : ya.d2l(shape.y1); }),
8-
slope: (function(shape, xa, ya) {
9-
return (ya.d2l(shape.y1) - ya.d2l(shape.y0)) / (xa.d2l(shape.x1) - xa.d2l(shape.x0));
10-
}),
11-
dx: (function(shape, xa) { return xa.d2l(shape.x1) - xa.d2l(shape.x0); }),
12-
dy: (function(shape, xa, ya) { return ya.d2l(shape.y1) - ya.d2l(shape.y0); }),
13-
width: (function(shape, xa) { return Math.abs(xa.d2l(shape.x1) - xa.d2l(shape.x0)); }),
14-
height: (function(shape, xa, ya) { return Math.abs(ya.d2l(shape.y1) - ya.d2l(shape.y0)); }),
15-
length: (function(shape, xa, ya) {
16-
return (shape.type === 'line') ? Math.sqrt(Math.pow((xa.d2l(shape.x1) - xa.d2l(shape.x0)), 2) + Math.pow((ya.d2l(shape.y1) - ya.d2l(shape.y0)), 2)) : undefined;
17-
}),
18-
xcenter: (function(shape, xa) {
19-
var val = (xa.d2l(shape.x1) + xa.d2l(shape.x0)) / 2;
20-
return (xa.type === 'date') ? xa.l2d(val) : val;
21-
}),
22-
ycenter: (function(shape, xa, ya) {
23-
var val = (ya.d2l(shape.y1) + ya.d2l(shape.y0)) / 2;
24-
return (ya.type === 'date') ? ya.l2d(val) : val;
25-
})
76+
x0: x0Fn,
77+
x1: x1Fn,
78+
y0: y0Fn,
79+
y1: y1Fn,
80+
slope: slopeFn,
81+
dx: dxFn,
82+
dy: dyFn,
83+
width: widthFn,
84+
height: heightFn,
85+
length: lengthFn,
86+
xcenter: xcenterFn,
87+
ycenter: ycenterFn,
2688
};
9.9 KB
Loading

0 commit comments

Comments
 (0)