Пример #1
0
        //
        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();
        }
Пример #2
0
        //
        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();
        }