Каков алгоритм хранения пикселей по спирали в JS?
-
19-08-2019 - |
Вопрос
Каков алгоритм хранения пикселей по спирали в 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 или передаете ее в другое место?