Qual è l'algoritmo per memorizzare i pixel in una spirale in JS?
-
19-08-2019 - |
Domanda
Qual è l'algoritmo per memorizzare i pixel in una spirale in JS?
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?