سؤال

لقد نظرت إلى هذا المثال باستخدام PHP و GD لتصوير الجريان دوامة مع أقواس صغيرة. ما أود القيام به هو تقديم تقريبي إلى دوامة دقيقة من الناحية الرياضية قدر الإمكان.

Inkscape لديه أداة حلزونية هذا يبدو جيدًا ، لكنني أود أن أقوم بالجيل الحلزوني برمجياً (ويفضل أن يكون في بيثون).

لم أجد أي مكتبات رسم (مثل القاهرة) تدعم الأشكال الحلزونية أصلاً. إذا أراد المرء أن يقدم دوامة مثالية مضادة للمضادات ، فهل ستكون أفضل طريقة لتكرار بكسل بكسل فقط على قماش ، وتحديد ما إذا كان كل بكسل يكمن في منطقة ذراع حلزونية محددة رياضيا (ذات سمك محدود)؟ في هذه الحالة ، يتعين على المرء أيضًا تنفيذ المنطق المضاد للعلاج من نقطة الصفر. هل يمكنك دمج جزء المنحنى الذي يقع داخل كل صندوق بكسل ، ثم تحويل نسبة ملء إلى مساحة فارغة إلى قيمة ألفا؟

في هذه الحالة ، تكون جودة العرض أكثر أهمية من وقت العرض. ومع ذلك ، فإن تقييم جزء لا يتجزأ في كل بكسل يضربني على أنه غير فعال للغاية.

تحديث: أعتقد أن السؤال الذي يجب أن أطرحه هذا (التي فشلت إجابات ياهو).

هل كانت مفيدة؟

المحلول

ألن يكون من الأسهل رسم منحنى (spline؟) وتوليد الكثير من نقاط التحكم؟ كهذا كنت تلتقط محركًا مضادًا حاليًا.

تحرير]: التقريب الأول لهذا (تم مع TCL/TK ، ولكن يجب أن يكون الكود سهل التحويل) يعطيني هذا:

# Make the list of spiral coordinates
set coords {}          
set theta 0; set r 10
set centerX 200; set centerY 150
# Go out 50 pixels per revolution
set pitch [expr {100.0 / 720.0}]
for {set i 0} {$i<720} {incr i} {
    lappend coords [expr { $centerX + $r*sin($theta) }] \
                   [expr { $centerY + $r*cos($theta) }]
    set r     [expr { $r + $pitch }]
    # Increment angle by one degree
    set theta [expr { $theta + 3.1415927/180 }]
}

# Display as a spline
pack [canvas .c -width 400 -height 300]
.c create line $coords -tag spiral -smooth 1

لم أبذل أي جهد لأكون فعالًا في استخدام نقاط التحكم.

نصائح أخرى

لم أجد أي مكتبات رسم (مثل القاهرة) تدعم الأشكال الحلزونية أصلاً

لا ، إنها ميزة غير عادية ؛ لقد أصبح الرسم مع اللوالب شائعًا في الآونة الأخيرة.

الكود الذي يستخدمه inkscape لهذا هو سبيرو. إنه في الغالب بيثون ، ويمكنه استخدام القاهرة لتقديم البيزيرات التي يتم تقريب اللوالب.

ومع ذلك ، فإن تقييم جزء لا يتجزأ في كل بكسل يضربني على أنه غير فعال للغاية.

نعم ، في الواقع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top