// private void Aufgabe(Vector3 vecAlt) { // Startpunkt in der Mitte des Koordinatensystem Color colorPaint = GenerateRandomColor(); int i = 0; do { // Punkt zeichnen _painter.PaintPoint(vecAlt, colorPaint); // neue Zufallsfarbe if (i % 500 == 0) { colorPaint = GenerateRandomColor(); //colorPaint = Color.Green; _frame.Repaint(); } // Zufälliges Matrix anwenden Vector3 vecNeu = Vector3.Transform(vecAlt, getRandTransfMatrix()); vecAlt = vecNeu; i++; } while (i < 100000); _frame.Refresh(); }
// private void Aufgabe() { Vector3 vecAlt; // Startpunkt in der Mitte des Koordinatensystem Color colorPaint = GenerateRandomColor(); int iRow = 0; int iCol = 0; Microsoft.Xna.Framework.Matrix matTransform; // alle Zeilen durchlaufen do { iCol = 0; // alle Spalten durchlaufen do { // Zähler int i = 0; bool bExitDo = false; // Punkt im Koordinatensystem ermitteln vecAlt = getPointAsVector(iRow, iCol); // 15x iterieren do { // Transformationsmatrix ermitteln matTransform = getTransMatrixForPoint(vecAlt); // Punkt transformieren vecAlt = Vector3.Transform(vecAlt, matTransform); // wenn der Punkt divergiert if ((vecAlt.X * vecAlt.X + vecAlt.Y * vecAlt.Y) > 100000.0) { if (i % 2 == 1) { colorPaint = Color.Red; } else { colorPaint = Color.Green; } bExitDo = true; break; } } while ((i++) < 15); // Wenn die Schleife nicht vorzeitig verlassen wurde, // also der Punkt nicht divergiert, den Punkt zeichnen if (bExitDo == false) { colorPaint = Color.Black; } // aktuellen Punkt zeichnen _painter.PaintPoint(getPointAsVector(iRow, iCol), colorPaint); } while ((iCol++) < ImageWidth); _frame.Repaint(); //// Punkt zeichnen //_painter.PaintPoint(vecAlt, colorPaint); //// neue Zufallsfarbe //if (i % 500 == 0) //{ // colorPaint = GenerateRandomColor(); // //colorPaint = Color.Green; // _frame.Repaint(); //} //// Zufälliges Matrix anwenden //Vector3 vecNeu = Vector3.Transform(vecAlt, getRandTransfMatrix()); //vecAlt = vecNeu; } while ((iRow++) < ImageHeight); _frame.Refresh(); }