0

JS中以螺旋形式存储像素的算法是什么?

4

2 回答 2

5

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的示例实现

于 2008-12-05T20:00:16.443 回答
3

这个问题有几个问题。首先是你并没有真正具体说明你在做什么。

1) Javascript 并不是真正的存储介质,除非您希望使用 JSON 传输像素,在这种情况下,您可能需要重新表述以明确说明这一点。

2)没有提到你期望螺旋看起来像什么 - 我们是在谈论松散螺旋还是紧密螺旋?单色或渐变或一系列颜色?你在看一个弯曲的螺旋还是一个矩形?

3)这里的最终目标是什么?您是想直接使用 JS 绘制螺旋还是将其传输到其他地方?

于 2008-12-05T19:08:41.680 回答