PIZiadas الرسم

PIZiadas الرسم

بلدي العالم هو فيه..

صور النمطي هندسي متكرر العودية: Sierpinski مثلث [JAVA]

triangulo_sierpinskiشهدنا أول برنامج يسمى “DrawWorld” قدمنا ​​برمجة جافا الرسومات الموجهة. دعونا تغيير هذا البرنامج الأساسية لتوليد كسورية العودية الأساسية: ال Sierpinski مثلث.

(شاهد وتوليد كسورية العودية)

بل هو كسورية التي يتم بناؤها بشكل متكرر من مثلث الذين مقسوما منتصفه الجانبين. مع هذه النقاط الجديدة, والسابقة, هي التي شيدت مثلثات جديدة على غرار السابقة.

إذا بدأنا من ABC مثلث والحصول على نقاط المنتصف من الجانبين (MNP), والمستوى التالي من العودية بناء مثلثات ثلاثة أدناه: APN, PBM المجلس الوطني للإعلام.

El triángulo de Sierpinski tiene una البعد كسورية من هاوسدورف-Besicovitch coincidente con su dimensión fractal de homotecia igual a: 1,58496… (ال)

إذا وتنقسم كل من هذه المثلثات الجديدة إلى ثلاثة, وسوف يكون الحصول على الرقم الجديد بشكل متكرر. سيكون لدينا مستوى جديد من العودية يمكننا التحكم باستخدام متغير (nivel_de_recursividad) من برنامجنا.

حددنا وظيفة “paintRecursivo” (دعوت من أسلوب “طلاء”) وعند هذه النقطة نحن قاعدة المثلث, والعودية. وظيفة يحسب رؤوس المثلث, يرسم الشكل وتطلق على نفسها ثلاث مرات, واحد لكل من subtriangles.

في كل استدعاء الدالة يقلل من قيمة العودية, بحيث عندما يكون الصفر التشطيبات تحمل العودية.

استيراد java.applet.Applet;
استيراد java.awt.Graphics;
/**
* @ الكاتب خوسيه خوان ألياجا
*/
جمهور فئة MainApp يمتد الصغير {
 مضاعفة XP1 = 300;
 مضاعفة yp1 = 300;
 مضاعفة XP2 = 10;
 مضاعفة yp2 = 300;
 مضاعفة sin60 = الرياضيات. خطيئة(3.14/3.);
 الباحث nivel_de_recursividad = 6;

 جمهور MainApp() { }

 جمهور ساكن باطلة رئيسي(سلسلة[] وسائط) { }

 باطل العامة طلاء(الرسومات ز){
   paintRecursivo(ز,nivel_de_recursividad,XP1، yp1، XP2، yp2);
 }

 الفراغ خاصة paintRecursivo(الرسومات ز, الباحث أنا, مضاعفة xp12, مضاعفة yp12, مضاعفة xp22, مضاعفة yp22 ) {

 مضاعفة DX =(xp22-xp12)/2.;
  مضاعفة اثنين =(yp22-yp12)/2.;
  مضاعفة XP32 xp12   DX = 2 * قيمة * sin60;
  مضاعفة yp32=yp12 dy 2*dx*sin60;

  مضاعفة DX1 =(xp22   xp12)/2.;
  مضاعفة DY1 =(yp22   yp12)/2.;
  مضاعفة DX2 =(XP32   xp22)/2.;
  مضاعفة DY2 =(yp32   yp22)/2.;
  مضاعفة DX3 =(xp12   XP32)/2.;
  مضاعفة Dy3 =(yp12   yp32)/2.;

  إذا(أنا<= 0){
   g.drawLine((الباحث)xp12,(الباحث)yp12,(الباحث)xp22,(الباحث)yp22);
   g.drawLine((الباحث)xp22,(الباحث)yp22,(الباحث)XP32,(الباحث)yp32);
   g.drawLine((الباحث)XP32,(الباحث)yp32,(الباحث)xp12,(الباحث)yp12);
  }
  آخر{
   paintRecursivo(ز,I-1، xp12، yp12، DX1، DY1);
   paintRecursivo(ز,I-1، DX1، DY1، xp22، yp22);
   paintRecursivo(ز,I-1، DX3، dy3، DX2، DY2);
  }

 }
}
JAVA

بالطبع JAVA