Files
cardconjurer/data/scripts/colors.js
2019-09-20 17:10:49 -07:00

22 lines
1.2 KiB
JavaScript

//Cycles through a rainbow!
setInterval(changeColor, 100)
var colorShiftingClock = 0
var colorFrequency = 2 * Math.PI / 600
var numberOfColors = 1
var lightness = 120
var lightAdjust = 120
function changeColor() {
for (var i = 1; i <= numberOfColors; i ++) {
var rgbValues = indexToColor(colorShiftingClock + ((i - 1) * 2 * Math.PI / numberOfColors / colorFrequency), colorFrequency)
document.documentElement.style.setProperty("--shifting-color-" + i, "rgb(" + rgbValues[0] + "," + rgbValues[1] + "," + rgbValues[2] + ")")
}
var rgbLightValues = indexToColor(colorShiftingClock + ((i - 1) * 2 * Math.PI / numberOfColors / colorFrequency), colorFrequency)
document.documentElement.style.setProperty("--shifting-color-1-light", "rgb(" + parseInt(rgbLightValues[0] + lightAdjust) + "," + parseInt(rgbLightValues[1] + lightAdjust) + "," + parseInt(rgbLightValues[2] + lightAdjust) + ")")
colorShiftingClock += 1
}
function indexToColor(colorIndex, frequency) {
var red = Math.sin(colorIndex * frequency + 0) * (255 - lightness) + lightness
var green = Math.sin(colorIndex * frequency + 2 * Math.PI / 3) * (255 - lightness) + lightness
var blue = Math.sin(colorIndex * frequency + 4 * Math.PI / 3) * (255 - lightness) + lightness
return [red, green, blue]
}