Orbit trap
ریاضی میں، آربیٹ ٹریپ فریکٹل امیجز کو رنگنے کا ایک طریقہ ہے جس کی بنیاد اس بات پر ہوتی ہے کہ ایک تکراری فنکشن، جو فریکٹل بنانے کے لیے استعمال ہوتا ہے، جیومیٹرک شکل تک پہنچتا ہے، جسے "ٹریپ" کہا جاتا ہے۔ عام ٹریپس پوائنٹس، لائنیں، حلقے، پھولوں کی شکلیں اور یہاں تک کہ رسٹر امیجز بھی ہیں۔ آربٹ ٹریپس عام طور پر پیچیدہ سطح کی نمائندگی کرنے والے دو جہتی فریکٹلز کو رنگنے کے لیے استعمال ہوتے ہیں۔ مثال پوائنٹ پر مبنی ایک نقطہ پر مبنی آربٹ ٹریپ ایک نقطہ کو اس بنیاد پر رنگ دیتا ہے کہ کسی فنکشن کا مدار کسی ایک نقطہ کے کتنے قریب آتا ہے، عام طور پر اصل۔ لائن پر مبنی آربٹ ٹریپ ایک نقطہ کو اس بنیاد پر رنگ دیتا ہے کہ فنکشن کا مدار ایک یا زیادہ لائنوں کے کتنے قریب آتا ہے، عام طور پر عمودی یا افقی (x = a یا y = a لائنیں)۔ پک اوور اسٹالز لائن پر مبنی آربیٹ ٹریپ کی ایک مثال ہیں جو دو لائنوں کا استعمال کرتے ہیں۔ الگورتھم آربٹ ٹریپس عام طور پر تکراری فنکشن کی بنیاد پر دو جہتی فریکٹلز کی کلاس کے ساتھ استعمال ہوتے ہیں۔ ایک ایسا پروگرام جو ہر پکسل میں اس طرح کے فریکٹل رنگ پیدا کرتا ہے، جو پیچیدہ سطح میں مجرد نکات کی نمائندگی کرتا ہے، ان نکات کے رویے کی بنیاد پر جب وہ کسی فنکشن سے ایک مقررہ تعداد میں گزرتے ہیں۔ اس قسم کے فریکٹل کی سب سے مشہور مثال مینڈلبروٹ سیٹ ہے، جو فنکشن zn + 1 = zn2 + c پر مبنی ہے۔ مینڈلبروٹ کی تصاویر کو رنگنے کا سب سے عام طریقہ یہ ہے کہ کسی خاص بیل آؤٹ ویلیو تک پہنچنے کے لیے درکار تکرار کی تعداد لی جائے اور پھر اس ویلیو کو ایک رنگ تفویض کیا جائے۔ اسے ایسکیپ ٹائم الگورتھم کہا جاتا ہے۔ ایک پروگرام جو پوائنٹ پر مبنی آربیٹ ٹریپ کا استعمال کرتے ہوئے مینڈلبروٹ سیٹ کو رنگ دیتا ہے وہ ہر پکسل کو "فاصلہ" متغیر کے ساتھ تفویض کرے گا، جو عام طور پر پہلے تفویض ہونے پر بہت زیادہ ہوگا: دوگنا فاصلہ = 10e5 جیسا کہ پروگرام پیچیدہ قدر کو تکراری فنکشن سے گزرتا ہے یہ مدار میں ہر نقطہ اور ٹریپ پوائنٹ کے درمیان فاصلے کی جانچ کرے گا۔ فاصلاتی متغیر کی قیمت تکرار کے دوران پایا جانے والا سب سے کم فاصلہ ہوگا: پرائیویٹ ڈبل گیٹ ڈسٹنس (کمپلیکس سی، کمپلیکس پوائنٹ، انٹی میکس آئیٹریشن) {ڈبل فاصلہ = 1e20 ؛ کمپلیکس زیڈ = نیا کمپلیکس (0,0) ؛ کے لیے (انٹی آئی = 0 ؛ آئی <میکس آئیٹریشن ؛ آئی + +) {// مینڈلبروٹ تکرار انجام دیں زیڈ = z.multiply (زیڈ) ؛ زیڈ = z.add (سی) ؛// نیا فاصلہ طے کریں ڈسٹ = منٹ (ڈسٹ، |z-پوائنٹ۔) کمپلیکس زیڈ مینس پوائنٹ = نیا کمپلیکس (زیڈ) ؛ زیڈ مینس پوائنٹ = zMinusPoint.subtract (پوائنٹ) ؛ ڈبل زیڈ مینس پوائنٹ ماڈیولس ۔ فریکٹلز