Domanda

Qual è l'algoritmo per memorizzare i pixel in una spirale in JS?

È stato utile?

Soluzione

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);

Esempio di implementazione su http://myweb.uiowa.edu/timv/spiral.htm

Altri suggerimenti

Ci sono un paio di problemi con questa domanda. Il primo è che non sei davvero specifico su ciò che stai facendo.

1) Javascript non è in realtà un supporto di memorizzazione, a meno che tu non stia cercando di trasmettere i pixel utilizzando JSON, nel qual caso potresti voler riformulare per dichiararlo esplicitamente.

2) Non si fa menzione di come ti aspetti che assomigli alla spirale: stiamo parlando di una spirale libera o stretta? Monocolore o una sfumatura o una serie di colori? Stai guardando una spirale curva o una rettangolare?

3) Qual è l'obiettivo finale qui? Stai cercando di disegnare la spirale direttamente usando JS o la stai trasmettendo in qualche altro posto?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top