¿Cómo seguiría creando un gradiente logarítmico que aumenta a medida que me alejo de un punto en javascript? También me gustaría normalizar los valores de este gradiente para que permanezcan entre 0 y 1. A partir de ahora, tengo los siguientes métodos:
generateGradient(x, y) { let distance = Math.sqrt(Math.pow((x - this.x), 2) + Math.pow((y - this.y), 2)); return distance; }Este método es sencillo y solo usa la fórmula de distancia de las matemáticas genéricas. A continuación, normalizo estos valores para que permanezcan entre cero y uno:
normalize(x) { let x_normalized = (x - this.x) / (width - this.x); return Math.abs(x_normalized); }Ambos métodos funcionan como se esperaba, probados con este bucle for:
var light = new lightSource(100, 100); for (var i = light.x+1; i < width; i++) { console.log(light.normalize(light.generateGradient(i, 100))); } La clase de fuente de luz es solo una clase con variables x e y que se utilizan al instanciarla. El bucle for genera valores de 0 a 1 en función de la distancia, pero ¿cómo crearía una regresión logarítmica?
Me gustaría que los valores aumentaran exponencialmente a medida que aumenta la distancia