Каков алгоритм хранения пикселей по спирали в JS? - PullRequest
1 голос
/ 05 декабря 2008

Что такое алгоритм хранения пикселей по спирали в JS?

Ответы [ 2 ]

5 голосов
/ 05 декабря 2008

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

Пример реализации на http://myweb.uiowa.edu/timv/spiral.htm

3 голосов
/ 05 декабря 2008

Есть несколько проблем с этим вопросом. Во-первых, вы не совсем уверены в том, что делаете.

1) Javascript на самом деле не является носителем данных, если только вы не хотите передавать пиксели с использованием JSON, и в этом случае вы можете перефразировать, чтобы явно указать это.

2) Нет никаких упоминаний о том, как вы ожидаете, что спираль будет выглядеть - мы говорим о свободной спирали или плотной спирали? Моноколор или градиент или серия цветов? Вы смотрите на изогнутую или прямоугольную спираль?

3) Какова конечная цель здесь? Вы хотите нарисовать спираль напрямую с помощью JS или передаете ее в другое место?

...