Είδαμε ένα πρώτο πρόγραμμα που ονομάζεται “DrawWorld” την εισαγωγή μας στα προγραμματισμού προσανατολισμένη γραφικά JAVA. Αυτή η ενότητα του προγραμματισμού μας βοήθησε να δούμε πρώτα φράκταλ αναδρομικές: El triángulo de Sierpisnki.
Veamos como modificar este programa elemental para generar un nuevo fractal recursivo básico: Ο curva de Kuch.
(Ver como se genera un fractal recursivo)
Είναι ένα fractal που είναι χτισμένο αναδρομικά από μια ευθεία γραμμή. Οι πλευρές του χωρίζεται σε τρία ίσα μέρη και το κεντρικό τμήμα έχει αλλάξει με τον σχηματισμό δύο ίσα 60 βαθμούς με την προηγούμενη και κάθε.
Ο Curva de Koch, επίσης γνωστή ως νιφάδα είναι μια φράκταλ που μπορεί να ληφθούν με διαφορετικές διαδικασίες, όπως γνωστές IFS ο λειτουργίες των συστημάτων επαναληπτικού (ντετερμινιστικό στην), συστήματα αποφανθεί με βάση, κλπ..
Ο αναδρομικό αλγόριθμο έχει η αρετή του να αντιπροσωπεύει επίσης μια έννοια στενά συνδεδεμένη με fractals: άπειρο. Η ουσία της αναδρομής επιτρέπει να περιγράψει σε μια πολύ απλή μορφή της ίδιας της καμπύλης. Ένα σύμπαν που περιέχει ένα άλλο και αυτό με τη σειρά του να αντιγράψετε το μοτίβο σε μικρότερη κλίμακα (τόσο συσταλτική) σε μια αλληλουχία που επαναλαμβάνεται απείρως.
Η καμπύλη Koch ανήκει στην ομάδα των αυτο-ομοιότητας fractal[1], είναι η μέθοδος απόκτησης την αιτιοκρατική.
Fractal διάσταση
Ο διάσταση ενός αντικειμένου είναι μια τοπολογική έννοια που τοποθετεί ή ταξινομεί αντικείμενα μετρικούς χώρους. Η διαισθητική αντίληψη των χώρων με όλη διαστάσεις συγκρούεται με τα λεγόμενα φράκταλ διαστάσεις, λαμβάνοντας πραγματικές τιμές.
Ο Peano πόρνη είναι ικανή κυρτό επίπεδο πλήρωσης. Έχοντας λοιπόν δύο διαστάσεις?, αναρωτιέται κανείς.
Η διάσταση ενός φράκταλ συνδέεται με την τραχύτητα, ο κατακερματισμός, Εκτιμώντας, έτσι ώστε ένα μεγαλύτερο παρόν μια πιο τραχιά ή τσαλακωμένα. Σε κάθε περίπτωση, χαρακτηρίζουν δίνει πληροφορίες σχετικά με την πολυπλοκότητα του.
Καμπύλη Koch έχει λόγο s = 1/3, με n = 4, Ως εκ τούτου, fractal διάσταση είναι:
D = ln4 / Ln3 ~ 1.269
Εάν κάθε ένα από αυτά τα νέα τμήματα χωρίζονται και πάλι αναδρομικά καμπύλη λαμβάνεται Hoch
.
Αν χρησιμοποιήσουμε τρεις γραμμές, αντί ενός εκκινητή, Φαίνεται ισόπλευρο τρίγωνο σχήμα κλασικό νιφάδα χιονιού, όνομα που είναι γνωστό ότι αυτό το Fractal διαμόρφωση.
Αλγόριθμο Γεννήτρια
Se ha definido una función “paintRecursivo” (que se llama desde el método “paint”) περάσαμε τα σημεία της γραμμής ή γραμμών του τριγώνου, así como el nivel de recursividad. Η λειτουργία υπολογίζει τις κορυφές των νέων τμημάτων, Χρώματα σχήμα και την ίδια Ζητά εκ νέου τη μείωση του επιπέδου της αναδρομής.
Por lo tanto, κάθε κλήση συνάρτησης αξίας αναδρομή μειώνεται, de forma que cuando éste es cero termina de efectuar la recursividad.
import java.applet.Applet; import java.awt.Graphics; /** * @author José Juan Aliaga */ public class MainApp extends Applet { double xp1=300; double yp1=300; double xp2=10; double yp2=300; double sin60=Math.sin(3.14/3.); int nivel_de_recursividad=6; public MainApp() { } public static void main(String[] args) { } public void paint(Graphics g){ paintRecursivo(g,nivel_de_recursividad,xp1,yp1,xp2,yp2); } private void paintRecursivo(Graphics g, int i, double xp12, double yp12, double xp22, double yp22 ) { double dx=(xp22-xp12)/3.; double dy=(yp22-yp12)/3.; double xx = xp12 + 3 * dx / dy 2.-sin60 *; double εε = yp12 + 3 * dy / dx + 2. * sin60; if(i<=0){ g.drawLine((int)xp12,(int)yp12,(int)xp22,(int)yp22); } else{ paintRecursivo(g,i-1, xp12, yp12, xp12 + dx,yp12+dy); paintRecursivo(g,i-1, xp12 + dx,yp12+dy,xx,εε); paintRecursivo(g,i-1, xx,εε,xp22-DX,yp22-dy); paintRecursivo(g,i-1, xp22-dx,yp22-dy,xp22,yp22); } } }
Πρέπει να είναι συνδεδεμένος για να αναρτήσεις σχόλιο.