רעקורסיווע פראַקטאַלס: סיערפּינסקי דרייַעק [דזשאַוואַ]

triangulo_sierpinskiמיר האָבן געזען אַ ערשטער פּראָגראַם גערופן “דראַוווואָרלד” מיר באַקענענ דער דזשאַוואַ פּראָגראַממינג אָריענטיד גראַפיקס. זאל ס טוישן דעם גרונט פּראָגראַם צו דזשענערייט אַ גרונט רעקורסיווע פראַקטאַל: די סיערפּינסקי דרייַעק.

(זען און דזשענערייטינג אַ רעקורסיווע פראַקטאַל)

עס איז אַ פראַקטאַל וואָס איז געבויט רעקורסיוועלי פון אַ דרייַעק וועמענס זייטן זענען צעטיילט דורך זייַן מידפּוינט. מיט די נייע פונקטן, און פֿריִערדיקע, נייַ טריאַנגלעס זענען קאַנסטראַקטאַד ענלעך צו די פֿריִערדיקע.

אויב מיר אָנהייב פון אַ דרייַעק אַבק און באַקומען די מידפּאָינץ פון זייַן זייטן (מנפּ), דער ווייַטער מדרגה פון רעקורסיאָן וועט בויען די דרייַ טריאַנגלעס ונטער: אַפּן, פּבם די נמק.

El triángulo de Sierpinski tiene una פראַקטאַל ויסמעסטונג פון האַוסדאָרפף-בעסיקאָוויטטש coincidente con su dimensión fractal de האָמאָטעסיאַ גלייַך צו: 1,58496… (די)

אויב יעדער פון די נייַ טריאַנגלעס זענען סאַבדיוויידיד אין דרייַ, מיר וועלן זייַן געטינג אַ נייַ געשטאַלט רעקורסיוועלי. מיר וועלן האָבן אַ נייע מדרגה פון רעקורסיאָן מיר קענען קאָנטראָלירן ניצן אַ בייַטעוודיק (ניוועל_דע_רעקורסיווידאַד) פון אונדזער פּראָגראַם.

מיר האָבן דיפיינד אַ פֿונקציע “פּאַינטרעקורסיוואָ” (איך גערופן פון דעם אופֿן “פאַרב”) אין וואָס פונט מיר דרייַעק באַזע, און די רעקורסיאָן. די פֿונקציע קאַלקיאַלייץ די ווערטיסעס פון דעם דרייַעק, פּיינץ די פיגור און רופט זיך דרייַ מאל, איינער פֿאַר יעדער פון די סובטריאַנגלעס.

אין יעדער רופן צו די פֿונקציע ראַדוסאַז די ווערט פון רעקורסיאָן, אַזוי אַז ווען עס איז נול פינישעס קעריינג רעקורסיאָן.

אַרייַנפיר דזשאַוואַ.אַפּפּלעט.אַפּפּלעט;
אַרייַנפיר דזשאַוואַ.אַווט.גראַפיקס;
/**
* @ מחבר דזשאָסע וואַן אַליאַגאַ
*/
עפנטלעך קלאַס MainApp יקסטענדז אַפּלאַט {
 טאָפּל קספּ1 = 300;
 טאָפּל יפּ1 = 300;
 טאָפּל קספּ2 = 10;
 טאָפּל יפּ2 = 300;
 טאָפּל סינ60 = מאַטה.סין(3.14/3.);
 ינט ניוועל_דע_רעקורסיווידאַד = 6;

 עפנטלעך MainApp() { }

 עפנטלעך סטאַטיק פּאָסל הויפּט(שטריקל[] אַרגס) { }

 ציבור פּאָסל פאַרב(גראַפיקס ג){
   פּאַינטרעקורסיוואָ(ג,ניוועל_דע_רעקורסיווידאַד,קספּ1, יפּ1, קספּ2, יפּ2);
 }

 פּריוואַט פּאָסל פּאַינטרעקורסיוואָ(גראַפיקס ג, ינט איך, טאָפּל קספּ12, טאָפּל יפּ12, טאָפּל קספּ22, טאָפּל יפּ22 ) {

 טאָפּל דקס =(קספּ22-קספּ12)/2.;
  טאָפּל צוויי =(יפּ22-יפּ12)/2.;
  טאָפּל קספּ32 קספּ12   דקס = 2 * ווערט * סינ60;
  טאָפּל yp32=yp12 dy 2*dx*sin60;

  טאָפּל דקס1 =(קספּ22   קספּ12)/2.;
  טאָפּל די1 =(יפּ22   יפּ12)/2.;
  טאָפּל דקס2 =(קספּ32   קספּ22)/2.;
  טאָפּל די2 =(יפּ32   יפּ22)/2.;
  טאָפּל דקס3 =(קספּ12   קספּ32)/2.;
  טאָפּל די3 =(יפּ12   יפּ32)/2.;

  צי(איך<= 0){
   ג.דראַוולינע((ינט)קספּ12,(ינט)יפּ12,(ינט)קספּ22,(ינט)יפּ22);
   ג.דראַוולינע((ינט)קספּ22,(ינט)יפּ22,(ינט)קספּ32,(ינט)יפּ32);
   ג.דראַוולינע((ינט)קספּ32,(ינט)יפּ32,(ינט)קספּ12,(ינט)יפּ12);
  }
  אַנדערש{
   פּאַינטרעקורסיוואָ(ג,איך-1, קספּ12, יפּ12, דקס1, די1);
   פּאַינטרעקורסיוואָ(ג,איך-1, דקס1, די1, קספּ22, יפּ22);
   פּאַינטרעקורסיוואָ(ג,איך-1, דקס3, די3, דקס2, די2);
  }

 }
}
JAVA

לויף דזשאַוואַ