You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
860 B
JavaScript
44 lines
860 B
JavaScript
export const PI2 = Math.PI * 2;
|
|
|
|
export function normalizeRadians(rad) {
|
|
return ((rad + Math.PI) % PI2) - Math.PI
|
|
}
|
|
|
|
// I found this on the internet
|
|
export function uuidv4() {
|
|
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
|
|
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
|
|
);
|
|
}
|
|
|
|
const COLORS = [
|
|
'#fc5c65',
|
|
'#fd9644',
|
|
'#fed330',
|
|
'#26de81',
|
|
'#2bcbba',
|
|
'#eb3b5a',
|
|
'#fa8231',
|
|
'#f7b731',
|
|
'#20bf6b',
|
|
'#0fb9b1',
|
|
'#45aaf2',
|
|
'#4b7bec',
|
|
'#a55eea',
|
|
'#d1d8e0',
|
|
'#778ca3',
|
|
'#2d98da',
|
|
'#3867d6',
|
|
'#8854d0',
|
|
'#a5b1c2',
|
|
'#4b6584',
|
|
];
|
|
|
|
export function colorFromName(name) {
|
|
let nr = name
|
|
.split("")
|
|
.map(x => (x.charCodeAt(0) - 97))
|
|
.reduce((a, b) => a + b);
|
|
|
|
return COLORS[nr % COLORS.length];
|
|
} |