ما هي الخوارزمية لتخزين وحدات البكسل في دوامة في 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 أم أنك تنقلها إلى مكان آخر؟
لا تنتمي إلى StackOverflow