¿Cuál es el algoritmo para almacenar los píxeles en espiral en JS?
-
19-08-2019 - |
Pregunta
¿Cuál es el algoritmo para almacenar los píxeles en espiral en JS?
Solución
http://www.mathematische-basteleien.de/spiral.htm
var Spiral = function(a) {
this.initialize(a);
}
Spiral.prototype = {
_a: 0.5,
constructor: Spiral,
initialize: function( a ) {
if (a != null) this._a = a;
},
/* specify the increment in radians */
points: function( rotations, increment ) {
var maxAngle = Math.PI * 2 * rotations;
var points = new Array();
for (var angle = 0; angle <= maxAngle; angle = angle + increment)
{
points.push( this._point( angle ) );
}
return points;
},
_point: function( t ) {
var x = this._a * t * Math.cos(t);
var y = this._a * t * Math.sin(t);
return { X: x, Y: y };
}
}
var spiral = new Spiral(0.3);
var points = spiral.points( 2, 0.01 );
plot(points);
Implementación de muestra en http://myweb.uiowa.edu/timv/spiral.htm
Otros consejos
Hay un par de problemas con esta pregunta. La primera es que realmente no estás siendo específico sobre lo que estás haciendo.
1) Javascript no es realmente un medio de almacenamiento, a menos que esté buscando transmitir los píxeles usando JSON, en cuyo caso es posible que desee reformular para indicarlo explícitamente.
2) No se menciona cómo espera que se vea la espiral: ¿estamos hablando de una espiral suelta o una espiral apretada? Monocolor o un degradado o una serie de colores? ¿Estás mirando una espiral curva o rectangular?
3) ¿Cuál es el objetivo final aquí? ¿Estás buscando dibujar la espiral directamente usando JS o la estás transmitiendo a otro lugar?