Total Complexity | 1 |
Complexity/F | 0 |
Lines of Code | 24 |
Function Count | 0 |
Duplicated Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | // Some math magic of the function responsible for produce |
||
2 | // hill-like curve and, correctly position and drag |
||
3 | // points on the Y axis |
||
4 | export const hillFn = (point: number) => |
||
5 | 50 * Math.sin((Math.PI / 50) * point - (1 / 2) * Math.PI) + 50; |
||
6 | |||
7 | // The inverse of the same magic to convert back values from |
||
8 | // chart back to the original before hillFn(). mainly used |
||
9 | // in dragging event and setting the setting new values. |
||
10 | export const hillFnInverse = (point: number) => |
||
11 | (25 * (2 * Math.asin((point - 50) / 50) + Math.PI)) / Math.PI; |
||
12 | |||
13 | // Calculate when the point is just near to the right side of the chart |
||
14 | export const textOutRange = (x: number) => x >= 80 && x <= 100; |
||
15 | |||
16 | export const calculateTextPositionForX = (size: number, x: number) => { |
||
17 | const margin = size + 5; |
||
18 | return textOutRange(x) ? -1 * margin : margin; |
||
19 | }; |
||
20 | |||
21 | export const calculateTextMarginForY = () => 5; |
||
22 | |||
23 | export const uId = () => Math.random().toString(36).slice(-6); |
||
24 |