ראינו תכנית ראשונה שנקראה “DrawWorld” מציג לנו את גרפיקת תכנות מונחה JAVA. מודול תכנות זה עזר לנו לראות ראשון פרקטל רקורסיבית: המשולש Sierpisnki.
בואו לשנות את התכנית בסיסית זו כדי ליצור פרקטל רקורסיבית בסיסי חדש: La Curva דה Kuch.
(לראות כפרקטל רקורסיבית נוצר)
זה פרקטל כי הוא בנוי באופן רקורסיבי מקו ישר. הצדדים שלה מתחלקים לשלושה חלקים שווים והקטע המרכזי הוא שונה על ידי יצירת שתי שווה 60 מעלות לאמור לעיל, וכל.
La Curva דה קוך, הידוע גם בפתית שלג הוא פרקטל שניתן להשיג על ידי נהלים שונים כידועים IFS o פונקציות מערכות איטרטיבית (דטרמיניסטי ב), מערכות מבוססות כללים, וכו '.
El אלגוריתם רקורסיבית יש הכח גם מייצג תפיסה קשורה באופן הדוק עם פרקטלים: אין סוף. המהות של רקורסיה מאפשרת לתאר בצורה פשוטה מאוד של העקום עצמו. יקום שמכיל עוד וזה בתורו להעתיק את הדפוס בקנה מידה קטן יותר (כך contractive) ברצף שחוזר על עצמו עד אין קץ.
עקומת קוך שייכת לקבוצה של פרקטל העצמי דומה[1], להיות שיטת קבלת הדטרמיניסטית.
ממד Fractal
La ממד של אובייקט הוא מושג טופולוגי שמציב או מסווג אובייקטים מדד חניה. הרעיון האינטואיטיבי של חללים עם כל ממדים מתנגש עם ממדי פרקטל שנקרא, לוקח ערכים בפועל.
La זונת פיאנו הוא מסוגל למלא את המטוס מעוגל. לאחר כך שני ממדים?, אחד פלאות.
הממד של פרקטל מזוהה עם החספוס, הפיצול, מזה, כך שמתנה גדולה יותר מחוספס או משונן. בכל מקרה המאפיין אותו נותן מידע על מורכבותו.
יש עקומת קוך יחס s = 1/3, עם n = 4, לכן הממד שלה הוא פרקטל:
D = ln4/ln3 ~ 1.269
אם כל אחד מהתחומים החדשים הללו מתחלקים שוב באופן רקורסיבי עקומת הוך מתקבלת
.
אם אנו משתמשים בשלושה קווים, במקום יוזם, צורת פתית שלג קלאסית משולש שווה צלעות מופיעה, שם שידוע לתצורה זו של פרקטל.
אלגוריתם מחולל
הגדיר פונקציה “paintRecursivo” (זה נקרא מהשיטה “לצבוע”) אני ביליתי את הנקודות של הקו או קווים משולש, ורקורסיה. הפונקציה מחשבת את הקודקודים של הקטעים החדשים, ציור הדמות וקורא לעצמו שוב הפחתת רקורסיה.
כך, כל ערך רקורסיה קריאה לפונקציה מצטמצם, כך שכאשר הוא אפס רקורסיה מסיימת ביצוע.
יבוא java.applet.Applet; יבוא java.awt.Graphics; /** * @ מחבר חוסה חואן Aliaga */ ציבורי מעמד MainApp מרחיב יישומון { כפול XP1 = 300; כפול yp1 = 300; כפול XP2 = 10; כפול yp2 = 300; כפול sin60 = Math.sin(3.14/3.); int nivel_de_recursividad = 6; ציבורי MainApp() { } ציבורי סטטי חלל ראשי(חוט[] ארגומנטים) { } חלל ציבורי לצבוע(גרפיקה גרם){ paintRecursivo(סול,nivel_de_recursividad,XP1, yp1, XP2, yp2); } חלל פרטי paintRecursivo(גרפיקה גרם, int אני, כפול xp12, כפול yp12, כפול xp22, כפול yp22 ) { כפול DX =(xp22-xp12)/3.; כפול שני =(yp22-yp12)/3.; כפול xx = xp12 3 * dx/2.-dy * sin60; כפול yy = yp12 3 * dy / 2. DX * sin60; אם(אני<= 0){ g.drawLine((int)xp12,(int)yp12,(int)xp22,(int)yp22); } אחר{ paintRecursivo(סול,i-1, xp12, yp12, xp12 DX,yp12 dy); paintRecursivo(סול,i-1, xp12 DX,yp12 dy,xx,YY); paintRecursivo(סול,i-1, xx,YY,xp22-DX,yp22-dy); paintRecursivo(סול,i-1, xp22-DX,yp22-dy,xp22, yp22); } } }
חייב להיות מְחוּבָּר לפרסם תגובה.