Question

Quel est l'algorithme de stockage des pixels dans une spirale dans JS?

Était-ce utile?

La solution

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

Exemple d'application à l'adresse http://myweb.uiowa.edu/timv/spiral.htm

Autres conseils

Cette question pose quelques problèmes. La première est que vous n'êtes pas vraiment précis sur ce que vous faites.

1) Javascript n'est pas vraiment un support de stockage, sauf si vous souhaitez transmettre les pixels à l'aide de JSON. Dans ce cas, vous souhaiterez peut-être reformuler pour l'indiquer explicitement.

2) Il n’est pas fait mention de ce que vous attendez de la spirale - parlons-nous d’une spirale lâche ou d’une spirale serrée? Monocolor ou un dégradé ou une série de couleurs? Vous cherchez une spirale incurvée ou rectangulaire?

3) Quel est le but final ici? Souhaitez-vous dessiner directement la spirale à l'aide de JS ou la transmettez-vous à un autre endroit?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top