Pregunta

¿Cuál es el algoritmo para almacenar los píxeles en espiral en JS?

¿Fue útil?

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?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top