Die Mathe-Redaktion - 17.12.2017 12:58 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
ListenpunktSchwätz / Top 15
ListenpunktWerde Mathe-Millionär!
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden oder den Newsletter bestellen.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 765 Gäste und 29 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Mathematik: Ein kleines Programm zum Zeichnen des Apfelmännchens in Java
Freigegeben von matroid am So. 03. Dezember 2017 21:19:56
Verfasst von Delastelle -   216 x gelesen [Gliederung] [Statistik] Druckbare Version Druckerfreundliche Version
Software

\(\begingroup\)Leider wurden das DOS-Programm Fractint und das Windows-Programm Winfract nicht mehr weiterentwickelt. Um trotzdem Fraktale zu erzeugen, habe ich hier ein Java-Programm zur Erzeugung des Apfelmännchens. Im Anschluss noch einige Fraktale, die mit Fractint erzeugt wurden.

Teil 1



Falls man kein Fractint oder Winfract(läuft nur unter älteren Windows-Versionen wie Windows XP) zur Verfügung hat hier ein Java-Programm für das Apfelmännchen.

Der Aufruf des Java-Programms erfolgt so:
javac mandPanel.java
javac mandFrame.java
javac mand.java
java mand
Java
import javax.swing.JFrame;
public class mand
{  public static void main(String[] args)
   {
   int[][] feld = new int[1500][1000];
   int l ,n1, n2, grenze;
   double a,b,s,u,v,x,xl,x2,y,y2,dx,dy;
   double xmin,xmax,ymin,ymax,p,q;
   int k;
 
   // xmin = -1.5; xmax = 1; ymin = -1.25; ymax = 1.25;
   // xmin=1; xmax=-2.8; ymin=1.5; ymax=-1.5; // Voelz Nr.1 -> alle Vorzeichen gewechselt
   // xmin=-0.7; xmax=-1.0; ymin=0.3; ymax=0.1; // Voelz Nr.2 -> alle Vorzeichen gewechselt
   // xmin =  -0.74; xmax=-0.79; ymin=0.135; ymax=0.025; // Voelz Nr.3 -> alle Vorzeichen gewechselt
   // xmin =  -0.74; xmax=-0.77; ymin=0.12; ymax=0.097; // Voelz Nr.4 -> alle Vorzeichen gewechselt
   // xmin =  -0.741; xmax=-0.749; ymin=0.116; ymax=0.11; // Voelz Nr.5 -> alle Vorzeichen gewechselt
   // xmin =  -0.745; xmax=-0.748; ymin=0.1163; ymax=0.114; // Voelz Nr.6 -> alle Vorzeichen gewechselt
   // xmin =  -0.7445; xmax=-0.7459; ymin=0.1132; ymax=0.11215; // Voelz Nr.7 -> alle Vorzeichen gewechselt
   // xmin =  -0.74515; xmax=-0.7455; ymin=0.1131; ymax=0.1129; // Voelz Nr.8 -> alle Vorzeichen gewechselt
   // xmin =  -0.74573; xmax=-0.74545; ymin=0.113018; ymax=0.11298; // Voelz Nr.9 -> alle Vorzeichen gewechselt
   xmin =  -0.74542; xmax=-0.745445; ymin=0.113016; ymax=0.112999; // Voelz Nr.10 -> alle Vorzeichen gewechselt
 
   n1 = 1500; // 640, 1500
   n2 = 1000; // 480, 1000
   grenze = 1000;  
 
   System.out.println("xmin = " + xmin);
   System.out.println("xmax = " + xmax);
   System.out.println("ymin = " + ymin);
   System.out.println("ymax = " + ymax);
 
   System.out.println("n1 = " + n1);
   System.out.println("n2 = " + n2);
   dx = (xmax-xmin)/n1;
   dy = (ymax-ymin)/n2;
 
  for(int i = 0; i < n1; i++)
  {
    for(int j = 0; j < n2; j++)
    {  p = xmin+i*dx;
       q = ymin+j*dy;
      a = p;
      b = q;
      x = a;
      y = b;
      k = 0;
      s = 1;
      while ((s<1000) && (k<grenze))
      {  xl = x; k = k+1;
        x2 = x * x;
        y2 = y * y;
        x = x2 - y2 + a;
        y = 2 * xl * y + b;
        s = x2 + y2;
      }
      feld[i][j]=0;
      if (k<grenze)
      { l = 1+(int) Math.floor(Math.log(k)/Math.log(2.0)*12.0) % 12;
        feld[i][j] = l;
 
      }
    }
  }
  mandFrame frame = new mandFrame(feld,n1,n2);
  frame.setTitle("Apfelmännchen");
  frame.setVisible(true);
}
 
}
 
Java
import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
 
/*************************************************************
*  Dieses Klasse sorgt für das Neuzeichnen des Windows-Kastens
*************************************************************/
public class mandFrame extends JFrame
{  private mandPanel panel;
   public mandFrame(int[][] feld, int n1, int n2)
   {  final int DEFAULT_FRAME_WIDTH = n1;
      final int DEFAULT_FRAME_HEIGHT = n2;
      setSize(DEFAULT_FRAME_WIDTH, DEFAULT_FRAME_HEIGHT);
 
      addWindowListener(new WindowCloser());
 
      panel = new mandPanel
         (feld, n1, n2);
      Container contentPane = getContentPane();
      contentPane.add(panel, "Center");
   }
 
   private class WindowCloser extends WindowAdapter
   {  public void windowClosing(WindowEvent event)
      {  System.exit(0);
      }
   }
}
 
 
Java
import java.awt.Graphics;
import javax.swing.JPanel;
import java.awt.Color;
 
/***********************************************************
*  Diese Klasse sorgt für das Neuzeichnen vom Inneren
*  des Windows-Kastens  
***********************************************************/
public class mandPanel extends JPanel
{  private static int[][] feld;
   private static int n1;
   private static int n2;
   int x,y;
   private mandPanel panel;
   /* Konstruktor */
   public mandPanel(int[][] feld2 , int n1, int n2)
   {  feld = feld2;
      x = n1;
      y = n2;
   }
 
   /* Rahmenprogramm */
   public void paint(Graphics g)
   {  super.paint(g);
      for (int i = 0; i < x; i++)
      {  for (int j = 0; j < y; j++)
         { if (feld[i][j]==0) g.setColor(Color.BLACK);
           if (feld[i][j]==1) g.setColor(Color.BLUE);
           if (feld[i][j]==2) g.setColor(Color.CYAN);
           if (feld[i][j]==3) g.setColor(Color.DARK_GRAY);
           if (feld[i][j]==4) g.setColor(Color.GRAY);
           if (feld[i][j]==5) g.setColor(Color.GREEN);
           if (feld[i][j]==6) g.setColor(Color.LIGHT_GRAY);
           if (feld[i][j]==7) g.setColor(Color.MAGENTA);
           if (feld[i][j]==8) g.setColor(Color.PINK);
           if (feld[i][j]==9) g.setColor(Color.RED);
           if (feld[i][j]==10) g.setColor(Color.ORANGE);
           if (feld[i][j]==11) g.setColor(Color.YELLOW);
           g.drawLine(i, j, i, j);
         }
      }
   }
 
}

Teil 2


Hier noch 10 Fraktale erzeugt mit dem Uraltprogramm Fractint.










Die Bilder 2 bis 11 wurden mit Fractint unter DOS-Box erzeugt.
Es sind Ausschnitte des klassischen Apfelmännchens.
Ein Beispiel zur Erzeugung:
Datei voelz1.bat
DOS
cycles = 50000
fractint float=yes sound=off video=sf7 batch=yes maxiter=32767 map=goodega corners=1/-2.8/1.5/-1.5 savename=voelz1.gif

Aufruf:
(Dosbox)
mount d d:\Fractint
d:
voelz1

Falls der Fractint-Ordner d:\Fractint ist und die DOS-Batch-Datei voelz1.bat heißt.
Zu den Koordinaten der Bilder 2 bis 11 siehe auch mand.java ganz oben.
Die Koordinaten der Bilder gehen auf Vorschläge des Wissenschaftlers Prof.Horst Völz zurück, der 1988 die Fraktale in Basic erzeugte.
Die Rechenzeiten betrugen damals viele Stunden pro Bild - heute sind es wenige Minuten pro Bild.

Literatur:
Klaus Lerbinger/Michael Kuchenbuch: Faszination Fraktale, Systhema Verlag, München 1992

Viele Grüße
Ronald
\(\endgroup\)
Link auf diesen Artikel Link auf diesen Artikel  Druckbare Version Druckerfreundliche Version  Einen Freund auf diesen Artikel aufmerksam machen Weitersagen Kommentare zeigen Kommentare  
pdfFür diesen Artikel gibt es keine pdf-Datei


Arbeitsgruppe Alexandria Dieser Artikel ist nicht im Verzeichnis der Arbeitsgruppe Alexandria eingetragen.
[Die Arbeitsgruppe Alexandria katalogisiert die Artikel auf dem Matheplaneten]

 
Verwandte Links
 
Besucherzähler 216
 
Aufrufstatistik des Artikels
Insgesamt 7 externe Besuche zwischen 2017.12 und 2017.12 [Anzeigen]
DomainAnzahlProz
http://matheplanet.com685.7%85.7 %
http://matheplanet.de114.3%14.3 %

Aufrufer der letzten 5 Tage im Einzelnen
Insgesamt 5 Aufrufe in den letzten 5 Tagen. [Anzeigen]
DatumAufrufer-URL
2017.12.12-2017.12.16 (4x)http://matheplanet.com/
2017.12.13 00:42mpcomments.php

[Seitenanfang]

" Mathematik: Ein kleines Programm zum Zeichnen des Apfelmännchens in Java" | 1 Kommentar
 
Für den Inhalt der Kommentare sind die Verfasser verantwortlich.

Re: Ein kleines Programm zum Zeichnen des Apfelmännchens in Java
von Delastelle am Mi. 13. Dezember 2017 00:42:15

\(\begingroup\)
Hallo,

ein Weihnachtsgeschenk?

Fototassen gibt es unter anderem bei pixum für aktuell
9,99 Euro + Versand.

Viele Grüße
Ronald\(\endgroup\)

 [Bearbeiten]

 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2017 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]