Τροχιακή παγίδα

Στα μαθηματικά, η τροχιακή παγίδα είναι μια μέθοδος χρωματισμού μορφοκλασματικών εικόνων με βάση το πόσο κοντά σε ένα γεωμετρικό σχήμα, που ονομάζεται "παγίδα", βρίσκεται μια επαναληπτική συνάρτηση που χρησιμοποιείται για τη δημιουργία του φράκταλ. Τυπικές παγίδες αποτελούν τα σημεία, οι γραμμές, οι κύκλοι, τα σχήματα λουλουδιών και ακόμη και οι εικόνες ράστερ. Οι παγίδες τροχιάς χρησιμοποιούνται συνήθως για τον χρωματισμό δισδιάστατων φράκταλ που αναπαριστούν το μιγαδικό επίπεδο.

Παραδείγματα

Προσδιορισμός με βάση τα σημεία
Μια τροχιακή παγίδα με βάση ένα σημείο χρωματίζει ένα σημείο σύμφωνα με την εγγύτητα της τροχιάς μιας συνάρτησης σε ένα μόνο σημείο, συνήθως το αρχικό σημείο.

Με βάση τη γραμμή
Μια τροχιακή παγίδα με βάση τις γραμμές χρωματίζει ένα σημείο με βάση το πόσο κοντά βρίσκεται η τροχιά μιας συνάρτησης σε μία ή περισσότερες γραμμές, συνήθως κάθετες ή οριζόντιες (γραμμές x=a ή y=a). Οι Μίσχοι του Πίκοβερ είναι ένα παράδειγμα τροχιακής παγίδας με βάση τη γραμμή που χρησιμοποιεί δύο γραμμές.

Αλγόριθμος
Οι τροχιακές παγίδες χρησιμοποιούνται γενικά με την κατηγορία των δισδιάστατων φράκταλ που βασίζονται σε μια επαναληπτική συνάρτηση. Ένα πρόγραμμα που δημιουργεί ένα τέτοιο φράκταλ χρωματίζει κάθε εικονοστοιχείο, το οποίο αντιπροσωπεύει διακριτά σημεία στο μιγαδικό επίπεδο, με βάση τη συμπεριφορά των σημείων αυτών όταν διέρχονται από μια συνάρτηση σε ορισμένο αριθμό φορών.

Το πιο γνωστό παράδειγμα αυτού του είδους φράκταλ είναι το σύνολο Μάντελμπροτ, το οποίο βασίζεται στη συνάρτηση  zn+1 = zn2 + c. Ο πιο συνηθισμένος τρόπος χρωματισμού των εικόνων Μάντελμπροτ είναι να λαμβάνεται ο αριθμός των επαναλήψεων που απαιτούνται για να επιτευχθεί μια συγκεκριμένη τιμή διάσωσης και στη συνέχεια να αποδίδεται στην τιμή αυτή ένα χρώμα. Αυτό το αποτέλεσμα ονομάζεται αλγόριθμος χρόνου διαφυγής.

Ένα πρόγραμμα που χρωματίζει το σύνολο Μάντελμπροτ χρησιμοποιώντας μια τροχιακή παγίδα βασισμένη σε σημεία θα αναθέσει σε κάθε εικονοστοιχείο μια μεταβλητή "απόστασης", η οποία συνήθως θα είναι πολύ υψηλή όταν ανατεθεί για πρώτη φορά:

double distance = 10e5

Καθώς το πρόγραμμα περνάει τη μιγαδική τιμή μέσω της επαναληπτικής συνάρτησης θα ελέγχει την απόσταση μεταξύ κάθε σημείου της τροχιάς και του σημείο παγίδευσης. Η τιμή της μεταβλητής απόστασης θα είναι η μικρότερη απόσταση που θα βρεθεί κατά τη διάρκεια της επανάληψης:

private double getDistance(Complex c,
                           Complex point,
                           int maxIteration)
{        
    double distance = 1e20;
    Complex z = new Complex(0, 0);

    for (int i=0; i<maxIteration; i++)
    {
        // Perform Mandelbrot iteration
        z = z.multiply(z);
        z = z.add(c);

        // Set new distance dist = min( dist, |z-point| )
        Complex zMinusPoint = new Complex(z);
        zMinusPoint = zMinusPoint.subtract(point);

        double zMinusPointModulus = zMinusPoint.magnitude();
        if (zMinusPointModulus < distance)
            distance = zMinusPointModulus;
    }

    return distance;
}

Εξωτερικοί σύνδεσμοι 
  Orbit Trap Examples 
  Julia Fractal Orbit Trap

Δημοσιεύσεις
.
.

Δείτε επίσης
Αλγόριθμος διαμαντιού τετραγώνου
Καμπύλη που γεμίζει το χώρο
Νιφάδα του Κοχ 
Καμπύλη Χίλμπερτ
Καμπύλη του δράκου
Σπόγγος του Μένγκερ
Χαλί του Σιερπίνσκι
Σύνολο Μάντελμπροτ 
Σύνολο Julia
Σύνολο Κάντορ
Οικοδομήσιμο Σύμπαν
Σύστημα-L

Παραπομπές



Κατηγορία:Φράκταλ