nicht für euch

Hike 2006
Verfügbare Informationen zu "nicht für euch"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Paul_Bertram - Jochen
  • Forum: Hike 2006
  • aus dem Unterforum: Allgemein Spam
  • Antworten: 7
  • Forum gestartet am: Sonntag 18.06.2006
  • Sprache: deutsch
  • Link zum Originaltopic: nicht für euch
  • Letzte Antwort: vor 17 Jahren, 8 Monaten, 27 Tagen, 1 Stunde, 58 Minuten
  • Alle Beiträge und Antworten zu "nicht für euch"

    Re: nicht für euch

    Paul_Bertram - 10.07.2006, 16:51

    nicht für euch
    /** Orientierungsprogramm.java
    * Written by Paul Bertram on the 11th of July, 2006
    * Based on the article "Oscillatory behaviour in a lattice prey-predator system" by Adam Lipowsky & the programm * "Superpredator" by Jürgen Hubert
    */

    import java.awt.*;
    import java.awt.color.*;
    import java.awt.event.*;
    import java.applet.*;
    import java.math.*;
    import java.util.*;

    public class Orientierungsprogramm
    extends Applet
    implements ActionListener
    {

    TextField stepNrField;
    TextField orientNrField;
    TextField rateOrientField;

    Random r = new Random();

    int xSize = 150;
    int ySize = 100;

    double stepNr;

    int iterNr;

    double rateOrient;
    int orientNr;
    double[][] orient = new double [xSize][ySize];

    public void init() //initialize layout, calculate starting values
    {
    setLayout(null);
    Button resetButton = new Button("Neu");
    resetButton.setBounds(20,430,100,40);
    resetButton.addActionListener(this);
    add(resetButton);

    setLayout(null);
    Button calculateButton = new Button("Rechnen");
    calculateButton.setBounds(130,430,100,40);
    calculateButton.addActionListener(this);
    add(calculateButton);

    setLayout(null);
    Button autoButton = new Button("Automatik");
    autoButton.setBounds(240,430,100,40);
    autoButton.addActionListener(this);
    add(autoButton);


    stepNrField = new TextField("10000");
    stepNrField.setBounds(470,480,100,40);
    add(stepNrField);

    orientNrField = new TextField("6");
    orientNrField.setBounds(300,530,100,40);
    add(orientNrField);

    rateOrientField = new TextField("0.5");
    rateOrientField.setBounds(470,530,100,40);
    add(rateOrientField);


    ResetValues();
    }

    public void paint(Graphics g) //draw text and displays
    {
    int x,y;
    int x_rel,y_rel;
    int red, green, blue;

    g.drawString("Schritte =",410,500);
    g.drawString("Orientierungen =",220,550);
    g.drawString("Orientierungswechsel=",410,550);
    g.drawString("Aktueller Schritt: " + iterNr,20,510);

    for(x=0;x<xSize;x++) {
    for(y=0;y<ySize;y++) {
    if (orient[x][y] < 1/6) {
    blue = 255;
    green = (int)((orient[x][y]*6)*255);
    red = 0;
    }
    else if (orient[x][y] < 2/6) {
    blue = (int)((((1/3)-orient[x][y])*6)*255);
    green = 255;
    red = 0;
    }
    else if (orient[x][y] < 3/6) {
    blue = 0;
    green = 255;
    red = (int)(-((orient[x][y]-(3/6))*6)*255);
    }
    else if (orient[x][y] < 4/6) {
    blue = 0;
    green = (int)((((2/3)-orient[x][y])*6)*255);
    red = 255;
    }
    else if (orient[x][y] < 5/6) {
    blue = (int)(-((orient[x][y]-(5/6))*6)*255);
    green = 0;
    red = 255;
    }
    else if (orient[x][y] <= 1) {
    blue = 255;
    green = 0;
    red = (int)(((1-orient[x][y])*6)*255);
    }
    //g.setColor(new Color(red,green,blue)); <-------Fehler
    //g.fillRect(x*4,y*4,4,4);
    }
    }
    }

    public void actionPerformed(ActionEvent event) //react to buttons
    {
    int i;
    int x, y;
    boolean calculate, reset, auto;

    calculate = event.getActionCommand().equals("Rechnen");
    reset = event.getActionCommand().equals("Neu");
    auto = event.getActionCommand().equals("Automatik");

    if(calculate) {
    rateOrient = Double.parseDouble(rateOrientField.getText());
    stepNr = Integer.parseInt(stepNrField.getText());

    iterNr +=stepNr;

    for(i=1;i<=stepNr;i++) {
    CalculateStep();
    }
    repaint();
    }

    if(reset) {
    orientNr = Integer.parseInt(orientNrField.getText());
    rateOrient = Double.parseDouble(rateOrientField.getText());

    ResetValues();
    repaint();
    }
    if(auto) {
    rateOrient = Double.parseDouble(rateOrientField.getText());
    stepNr = Integer.parseInt(stepNrField.getText());

    iterNr +=stepNr;
    int j;
    for(j=1;j<50;j++) {
    for(i=1;i<=stepNr;i++) {
    CalculateStep();
    }
    repaint();
    //Thread.sleep(100); <------Fehler
    }
    }
    }


    void CalculateStep()
    {
    int x, y;

    x = Math.abs(r.nextInt()) % xSize;
    y = Math.abs(r.nextInt()) % ySize;

    UpdateZelle(x,y);
    }


    void UpdateZelle(int x, int y)
    {
    double emptyNr = 0;

    double[] p = new double [orientNr];
    double eAlt = 0;
    double[] eNeu = new double [orientNr];
    int k;
    for(k=1;k<orientNr;k++) {
    eNeu[k]=0;
    }

    int xp = x+1;
    int xm = x-1;
    int yp = y+1;
    int ym = y-1;

    if(xp==xSize) xp = 0;
    if(xm==-1) xm = xSize - 1;
    if(yp==ySize) yp = 0;
    if(ym==-1) ym = ySize - 1;

    //Berechnung von eAlt
    if (orient[xp][yp]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xp][yp]*Math.PI-orient[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xp][ym]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xp][ym]*Math.PI-orient[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xm][yp]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xm][yp]*Math.PI-orient[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xm][ym]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xm][ym]*Math.PI-orient[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xp][y]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xp][y]*Math.PI-orient[x][y]*Math.PI)));
    }
    if (orient[x][yp]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[x][yp]*Math.PI-orient[x][y]*Math.PI)));
    }
    if (orient[xm][y]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xm][y]*Math.PI-orient[x][y]*Math.PI)));
    }
    if (orient[x][ym]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[x][ym]*Math.PI-orient[x][y]*Math.PI)));
    }
    //Berechnung von möglichen eNeu
    int i;
    double[][] orientNeu = new double[xSize][ySize];

    for(i=1;i<orientNr;i++) {

    if (orient[x][y]!=i/orientNr){
    orientNeu[x][y]=i/orientNr;
    }
    if (orient[xp][yp]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xp][yp]*Math.PI-orientNeu[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xp][ym]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xp][ym]*Math.PI-orientNeu[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xm][yp]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xm][yp]*Math.PI-orientNeu[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xm][ym]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xm][ym]*Math.PI-orientNeu[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xp][y]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xp][y]*Math.PI-orientNeu[x][y]*Math.PI)));
    }
    if (orient[x][yp]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[x][yp]*Math.PI-orientNeu[x][y]*Math.PI)));
    }
    if (orient[xm][y]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xm][y]*Math.PI-orientNeu[x][y]*Math.PI)));
    }
    if (orient[x][ym]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[x][ym]*Math.PI-orientNeu[x][y]*Math.PI)));
    }
    }


    //Berechnung der Differrenz und der Wahrscheinlichkeit, dass die Orientierung sich ändert
    double[] eDiff = new double [orientNr];

    for(i=1;i<orientNr>p[i]) {
    orient[x][y] = orientNeu[x][y]; //Neue Orientierung
    }
    }
    repaint();
    }

    void ResetValues()
    {
    int x, y, z;

    iterNr = 0;

    for(x=0;x<xSize;x++) {
    for(y=0;y<ySize;y++) {

    orient[x][y] = (GetRandom());
    for(z=1;z<orientNr;z++) {
    if (orient[x][y] < (double)z/orientNr) {
    orient[x][y] = (double)z/orientNr;
    }
    }
    }
    }
    }

    double GetRandom()
    {
    double ranVal = Math.abs(Math.random());
    return ranVal - Math.floor(ranVal);
    }
    }



    Re: nicht für euch

    Paul_Bertram - 11.07.2006, 15:48


    /** Orientierungsprogramm.java
    * Written by Paul Bertram on the 11th of July, 2006
    * Based on the article "Oscillatory behaviour in a lattice prey-predator system" by Adam Lipowsky & the programm * "Superpredator" by Jürgen Hubert
    */

    import java.awt.*;
    import java.awt.color.*;
    import java.awt.event.*;
    import java.applet.*;
    import java.math.*;
    import java.util.*;

    public class Orientierungsprogramm
    extends Applet
    implements ActionListener
    {

    TextField stepNrField;
    TextField orientNrField;
    TextField rateOrientField;

    Random r = new Random();

    int xSize = 150;
    int ySize = 100;

    double stepNr;

    int iterNr;

    double rateOrient;
    int orientNr;
    double[][] orient = new double [xSize][ySize];

    public void init() //initialize layout, calculate starting values
    {
    setLayout(null);
    Button resetButton = new Button("Neu");
    resetButton.setBounds(20,430,100,40);
    resetButton.addActionListener(this);
    add(resetButton);

    setLayout(null);
    Button calculateButton = new Button("Rechnen");
    calculateButton.setBounds(130,430,100,40);
    calculateButton.addActionListener(this);
    add(calculateButton);

    setLayout(null);
    Button autoButton = new Button("Automatik");
    autoButton.setBounds(240,430,100,40);
    autoButton.addActionListener(this);
    add(autoButton);


    stepNrField = new TextField("10000");
    stepNrField.setBounds(470,480,100,40);
    add(stepNrField);

    orientNrField = new TextField("6");
    orientNrField.setBounds(300,530,100,40);
    add(orientNrField);

    rateOrientField = new TextField("0.5");
    rateOrientField.setBounds(470,530,100,40);
    add(rateOrientField);


    ResetValues();
    }

    public void paint(Graphics g) //draw text and displays
    {
    int x,y;
    int x_rel,y_rel;
    int red, green, blue;
    green=0;
    red=0;
    blue=0;

    g.drawString("Schritte =",410,500);
    g.drawString("Orientierungen =",220,550);
    g.drawString("Orientierungswechsel=",410,550);
    g.drawString("Aktueller Schritt: " + iterNr,20,510);

    for(x=0;x<xSize;x++) {
    for(y=0;y<ySize;y++) {
    if (orient[x][y] < 1/6) {
    blue = 255;
    green = (int)((orient[x][y]*6)*255);
    red = 0;
    }
    else if (orient[x][y] < 2/6) {
    blue = (int)((((1/3)-orient[x][y])*6)*255);
    green = 255;
    red = 0;
    }
    else if (orient[x][y] < 3/6) {
    blue = 0;
    green = 255;
    red = (int)(-((orient[x][y]-(3/6))*6)*255);
    }
    else if (orient[x][y] < 4/6) {
    blue = 0;
    green = (int)((((2/3)-orient[x][y])*6)*255);
    red = 255;
    }
    else if (orient[x][y] < 5/6) {
    blue = (int)(-((orient[x][y]-(5/6))*6)*255);
    green = 0;
    red = 255;
    }
    else if (orient[x][y] <= 1) {
    blue = 255;
    green = 0;
    red = (int)(((1-orient[x][y])*6)*255);
    }
    g.setColor(new Color(red,green,blue));
    g.fillRect(x*4,y*4,4,4);
    }
    }
    }

    public void actionPerformed(ActionEvent event) //react to buttons
    {
    int i;
    int x, y;
    boolean calculate, reset, auto;

    calculate = event.getActionCommand().equals("Rechnen");
    reset = event.getActionCommand().equals("Neu");
    auto = event.getActionCommand().equals("Automatik");

    if(calculate) {
    rateOrient = Double.parseDouble(rateOrientField.getText());
    stepNr = Integer.parseInt(stepNrField.getText());

    iterNr +=stepNr;

    for(i=1;i<=stepNr;i++) {
    CalculateStep();
    }
    repaint();
    }

    if(reset) {
    orientNr = Integer.parseInt(orientNrField.getText());
    rateOrient = Double.parseDouble(rateOrientField.getText());

    ResetValues();
    repaint();
    }
    if(auto) {
    rateOrient = Double.parseDouble(rateOrientField.getText());
    stepNr = Integer.parseInt(stepNrField.getText());

    iterNr +=stepNr;
    int j;
    for(j=1;j<50;j++) {
    for(i=1;i<=stepNr;i++) {
    CalculateStep();
    }
    repaint();
    //Thread.sleep(100); <------Fehler
    }
    }
    }


    void CalculateStep()
    {
    int x, y;

    x = Math.abs(r.nextInt()) % xSize;
    y = Math.abs(r.nextInt()) % ySize;

    UpdateZelle(x,y);
    }


    void UpdateZelle(int x, int y)
    {
    double emptyNr = 0;

    double[] p = new double [orientNr];
    double eAlt = 0;
    double[] eNeu = new double [orientNr];
    int k;
    for(k=1;k<orientNr;k++) {
    eNeu[k]=0;
    }

    int xp = x+1;
    int xm = x-1;
    int yp = y+1;
    int ym = y-1;

    if(xp==xSize) xp = 0;
    if(xm==-1) xm = xSize - 1;
    if(yp==ySize) yp = 0;
    if(ym==-1) ym = ySize - 1;

    //Berechnung von eAlt
    if (orient[xp][yp]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xp][yp]*Math.PI-orient[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xp][ym]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xp][ym]*Math.PI-orient[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xm][yp]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xm][yp]*Math.PI-orient[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xm][ym]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xm][ym]*Math.PI-orient[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xp][y]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xp][y]*Math.PI-orient[x][y]*Math.PI)));
    }
    if (orient[x][yp]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[x][yp]*Math.PI-orient[x][y]*Math.PI)));
    }
    if (orient[xm][y]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xm][y]*Math.PI-orient[x][y]*Math.PI)));
    }
    if (orient[x][ym]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[x][ym]*Math.PI-orient[x][y]*Math.PI)));
    }
    //Berechnung von möglichen eNeu
    int i;
    double[][] orientNeu = new double[xSize][ySize];

    for(i=1;i<orientNr;i++) {

    if (orient[x][y]!=i/orientNr){
    orientNeu[x][y]=i/orientNr;
    }
    if (orient[xp][yp]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xp][yp]*Math.PI-orientNeu[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xp][ym]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xp][ym]*Math.PI-orientNeu[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xm][yp]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xm][yp]*Math.PI-orientNeu[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xm][ym]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xm][ym]*Math.PI-orientNeu[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xp][y]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xp][y]*Math.PI-orientNeu[x][y]*Math.PI)));
    }
    if (orient[x][yp]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[x][yp]*Math.PI-orientNeu[x][y]*Math.PI)));
    }
    if (orient[xm][y]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xm][y]*Math.PI-orientNeu[x][y]*Math.PI)));
    }
    if (orient[x][ym]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[x][ym]*Math.PI-orientNeu[x][y]*Math.PI)));
    }
    }


    //Berechnung der Differrenz und der Wahrscheinlichkeit, dass die Orientierung sich ändert
    double[] eDiff = new double [orientNr];

    for(i=1;i<orientNr>p[i]) {
    orient[x][y] = orientNeu[x][y]; //Neue Orientierung
    }
    }
    repaint();
    }

    void ResetValues()
    {
    int x, y, z;

    iterNr = 0;

    for(x=0;x<xSize;x++) {
    for(y=0;y<ySize;y++) {

    orient[x][y] = (GetRandom());
    for(z=1;z<orientNr;z++) {
    if (orient[x][y] < (double)z/orientNr) {
    orient[x][y] = (double)z/orientNr;
    }
    }
    }
    }
    }

    double GetRandom()
    {
    double ranVal = Math.abs(Math.random());
    return ranVal - Math.floor(ranVal);
    }
    }



    Re: nicht für euch

    Jochen - 11.07.2006, 16:27


    wo kopierste dir das denn immer rauß?



    Re: nicht für euch

    Paul_Bertram - 11.07.2006, 17:58


    /** Orientierungsprogramm.java
    * Written by Paul Bertram on the 11th of July, 2006
    * Based on the article "Oscillatory behaviour in a lattice prey-predator system" by Adam Lipowsky & the programm * "Superpredator" by Jürgen Hubert
    */

    import java.awt.*;
    import java.awt.color.*;
    import java.awt.event.*;
    import java.applet.*;
    import java.math.*;
    import java.util.*;

    public class Orientierungsprogramm
    extends Applet
    implements ActionListener
    {

    TextField stepNrField;
    TextField orientNrField;
    TextField rateOrientField;

    Random r = new Random();


    int xSize = 150;
    int ySize = 100;

    double stepNr;

    int iterNr;

    double rateOrient;
    int orientNr;
    double[][] orient = new double [xSize][ySize];

    public void init() //initialize layout, calculate starting values
    {
    setLayout(null);
    Button resetButton = new Button("Neu");
    resetButton.setBounds(20,430,100,40);
    resetButton.addActionListener(this);
    add(resetButton);

    setLayout(null);
    Button calculateButton = new Button("Rechnen");
    calculateButton.setBounds(130,430,100,40);
    calculateButton.addActionListener(this);
    add(calculateButton);

    setLayout(null);
    Button autoButton = new Button("Automatik");
    autoButton.setBounds(240,430,100,40);
    autoButton.addActionListener(this);
    add(autoButton);


    stepNrField = new TextField("10000");
    stepNrField.setBounds(150,480,100,40);
    add(stepNrField);

    orientNrField = new TextField("6");
    orientNrField.setBounds(400,530,100,40);
    add(orientNrField);

    rateOrientField = new TextField("0.5");
    rateOrientField.setBounds(150,530,100,40);
    add(rateOrientField);

    orientNr = Integer.parseInt(orientNrField.getText());
    rateOrient = Double.parseDouble(rateOrientField.getText());

    ResetValues();
    repaint();
    }

    public void paint(Graphics g) //draw text and displays
    {
    int x,y;
    int x_rel,y_rel;
    int red, green, blue;
    green=0;
    red=0;
    blue=0;

    g.drawString("Schritte =",10,500);
    g.drawString("Orientierungen =",300,550);
    g.drawString("O-wechsel=",10,550);
    g.drawString("Aktueller Schritt: " + iterNr,300,510);

    orient[1][1] = 1/6;
    orient[1][2] = 2/6;
    orient[1][3] = 3/6;
    orient[1][4] = 4/6;
    orient[1][5] = 5/6;
    orient[1][6] = 1;


    for(x=0;x<xSize;x++) {
    for(y=0;y<ySize;y++) {
    if (orient[x][y] <= 1/6) {
    blue = 255;
    green = (int)((orient[x][y]*6)*255);
    red = 0;
    }
    else if (orient[x][y] <= 2/6) {
    blue = (int)((((1/3)-orient[x][y])*6)*255);
    green = 255;
    red = 0;
    }
    else if (orient[x][y] <= 3/6) {
    blue = 0;
    green = 255;
    red = (int)(-((orient[x][y]-(3/6))*6)*255);
    }
    else if (orient[x][y] <= 4/6) {
    blue = 0;
    green = (int)((((2/3)-orient[x][y])*6)*255);
    red = 255;
    }
    else if (orient[x][y] <= 5/6) {
    blue = (int)(-((orient[x][y]-(5/6))*6)*255);
    green = 0;
    red = 255;
    }
    else if (orient[x][y] <= 1) {
    blue = 255;
    green = 0;
    red = (int)(((1-orient[x][y])*6)*255);
    }
    g.setColor(new Color(red,green,blue));
    g.fillRect(x*4,y*4,4,4);
    }
    }
    }

    public void actionPerformed(ActionEvent event) //react to buttons
    {
    int i;
    int x, y;
    boolean calculate, reset, auto;

    calculate = event.getActionCommand().equals("Rechnen");
    reset = event.getActionCommand().equals("Neu");
    auto = event.getActionCommand().equals("Automatik");

    if(calculate) {
    rateOrient = Double.parseDouble(rateOrientField.getText());
    stepNr = Integer.parseInt(stepNrField.getText());

    iterNr +=stepNr;

    for(i=1;i<=stepNr;i++) {
    CalculateStep();
    }
    repaint();
    }

    if(reset) {
    orientNr = Integer.parseInt(orientNrField.getText());
    rateOrient = Double.parseDouble(rateOrientField.getText());

    ResetValues();
    repaint();
    }
    if(auto) {
    rateOrient = Double.parseDouble(rateOrientField.getText());
    stepNr = Integer.parseInt(stepNrField.getText());

    iterNr +=stepNr;
    int j;
    for(j=1;j<50;j++) {
    for(i=1;i<=stepNr;i++) {
    CalculateStep();
    }
    repaint();
    //Thread.sleep(100); <------Fehler
    }
    }
    }


    void CalculateStep()
    {
    int x, y;

    x = Math.abs(r.nextInt()) % xSize;
    y = Math.abs(r.nextInt()) % ySize;

    UpdateZelle(x,y);
    }


    void UpdateZelle(int x, int y)
    {

    double[] p = new double [orientNr];
    double eAlt = 0;
    double[] eNeu = new double [orientNr];
    int k;
    for(k=1;k<orientNr;k++) {
    eNeu[k]=0;
    }

    int xp = x+1;
    int xm = x-1;
    int yp = y+1;
    int ym = y-1;

    if(xp==xSize) xp = 0;
    if(xm==-1) xm = xSize - 1;
    if(yp==ySize) yp = 0;
    if(ym==-1) ym = ySize - 1;

    //Berechnung von eAlt
    if (orient[xp][yp]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xp][yp]*Math.PI-orient[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xp][ym]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xp][ym]*Math.PI-orient[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xm][yp]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xm][yp]*Math.PI-orient[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xm][ym]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xm][ym]*Math.PI-orient[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xp][y]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xp][y]*Math.PI-orient[x][y]*Math.PI)));
    }
    if (orient[x][yp]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[x][yp]*Math.PI-orient[x][y]*Math.PI)));
    }
    if (orient[xm][y]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[xm][y]*Math.PI-orient[x][y]*Math.PI)));
    }
    if (orient[x][ym]!=orient[x][y]){
    eAlt = eAlt+(Math.abs(Math.sin(orient[x][ym]*Math.PI-orient[x][y]*Math.PI)));
    }
    //Berechnung von möglichen eNeu
    int i;
    double[][] orientNeu = new double[xSize][ySize];

    for(i=1;i<orientNr;i++) {

    if (orient[x][y]!=i/orientNr){
    orientNeu[x][y]=i/orientNr;
    }
    if (orient[xp][yp]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xp][yp]*Math.PI-orientNeu[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xp][ym]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xp][ym]*Math.PI-orientNeu[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xm][yp]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xm][yp]*Math.PI-orientNeu[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xm][ym]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xm][ym]*Math.PI-orientNeu[x][y]*Math.PI)) /Math.sqrt(2));
    }
    if (orient[xp][y]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xp][y]*Math.PI-orientNeu[x][y]*Math.PI)));
    }
    if (orient[x][yp]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[x][yp]*Math.PI-orientNeu[x][y]*Math.PI)));
    }
    if (orient[xm][y]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[xm][y]*Math.PI-orientNeu[x][y]*Math.PI)));
    }
    if (orient[x][ym]!=orientNeu[x][y]){
    eNeu[i] = eNeu[i]+(Math.abs(Math.sin(orient[x][ym]*Math.PI-orientNeu[x][y]*Math.PI)));
    }
    }


    //Berechnung der Differrenz und der Wahrscheinlichkeit, dass die Orientierung sich ändert
    double[] eDiff = new double [orientNr];

    for(i=1;i<orientNr>p[i]) {
    orient[x][y] = orientNeu[x][y]; //Neue Orientierung
    }
    }
    repaint();
    }

    void ResetValues()
    {
    int x, y, z;

    iterNr = 0;

    for(x=0;x<xSize;x++) {
    for(y=0;y<ySize;y++) {

    orient[x][y] = (GetRandom());

    for(z=1;z<orientNr;z++) {
    if (orient[x][y] < (double)z/orientNr) {
    orient[x][y] = (double)z-1/orientNr;
    }
    }
    }
    }
    }

    double GetRandom()
    {
    double ranVal = Math.abs(Math.random());
    return ranVal - Math.floor(ranVal);
    }
    }



    Re: nicht für euch

    Paul_Bertram - 11.07.2006, 19:35


    selbst geschrieben, hehe



    Re: nicht für euch

    Jochen - 12.07.2006, 12:14


    schreib mal hier rein, wenn du in den mainchat kommst. oder ruf kurz an.



    Re: nicht für euch

    Paul_Bertram - 19.07.2006, 11:49


    bin drin, nur du net



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Hike 2006

    Bewerbung, warum? - gepostet von Paul_Bertram am Sonntag 18.06.2006



    Ähnliche Beiträge wie "nicht für euch"

    der_zwerg - jimbo (Sonntag 12.11.2006)
    Großer Plöner See Spitzenort - Hörnchen (Donnerstag 07.04.2011)
    Leana da Zwerg is in da house xD - Leana (Freitag 07.07.2006)
    dark zwerg - dark zwreg (Donnerstag 14.06.2007)
    Bewerbung vom Zwerg Priester - Anonymous (Donnerstag 13.07.2006)
    Der Zwerg - nadine (Mittwoch 01.11.2006)
    Abenteuer 13 - Zwischenspiel - Turm der Verdammten - Markus (Samstag 07.01.2012)
    Der 8te Zwerg fordert euch heraus - <=HHG=>Der 8te Zwer (Montag 08.11.2004)
    Der kleine grüne Zwerg - rene (Montag 11.06.2007)
    Mein Zwerg suckt - Lord Stark (Mittwoch 10.05.2006)