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

StackOverflow https://stackoverflow.com/questions/344672

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

scroll top