Quel est l'algorithme pour stocker les pixels dans une spirale dans JS?
-
19-08-2019 - |
Question
Quel est l'algorithme de stockage des pixels dans une spirale dans JS?
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?