private void MyMethod(Image <Rgb, byte> image)
        // Insert your code here instead of drawing 500 random dots
        {
            for (int k = 0; k < 500; ++k)
            {
                image[_rand.Next(image.Height), _rand.Next(image.Width)] = new Rgb(GenerateRandomColor());
            }

            // Repaint the frame so the changes to the raster image can be seen
            _frame.Repaint();
        }
Exemple #2
0
        // aktualisiert das bild
        // durchläuft das Statusarray und zeichnet die ensprechenden Pixel
        // je nach Zustand
        private void updateColors()
        {
            int x = 0;
            int y = 0;

            // Gesamtes Array auf empty setzen
            for (x = 0; x < ImageWidth; x++)
            {
                for (y = 0; y < ImageHeight; y++)
                {
                    switch (state[x, y])
                    {
                    case eState.empty:
                        _image[y, x] = new Rgb(Color.White);
                        break;

                    case eState.termite:
                        _image[y, x] = new Rgb(Color.Black);
                        break;

                    case eState.wood:
                        _image[y, x] = new Rgb(Color.Brown);
                        break;

                    case eState.termitandwood:
                        _image[y, x] = new Rgb(Color.Red);
                        break;
                    }
                }
            }

            _frame.Repaint();
        }
Exemple #3
0
        // wenn aktuelles feld weiß ist, dann rot färben - nach links drehen und eins vorwärts
        // wenn aktuelles feld rot, dann weiß färben - nach rechts drehen und eins vorwärts
        private void Aufgabe()
        {
            flow.StepCount = 1000;

            for (int iAnt = 0; iAnt < arrAnts.Length; iAnt++)
            {
                strAnt          = GLabReader.ReadAntFromFile(arrAnts[iAnt]);
                AnzahlZustaende = strAnt.Length;
                arrZustand      = new int[ImageWidth, ImageHeight];
                _image          = new Image <Rgb, byte>(ImageWidth, ImageHeight, new Rgb(Color.White));
                _frame.SetImage(_image);
                ant1.iZustand = 0;
                ant1.iCurrX   = (ImageWidth - 1) / 2;
                ant1.iCurrY   = (ImageHeight - 1) / 2;

                for (int i = 0; i < 10000000; i++)
                {
                    if (i % 1000 == 0)
                    {
                        _frame.Repaint();
                        Logger.Instance.LogInfo("" + i);
                    }

                    //for (Int64 ix = 0; ix < 10000; ix++) { }
                    flow.Wait();
                    ant1 = doStep(ant1);
                    ant2 = doStep(ant2);
                }
            }
        }
Exemple #4
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();
        }
Exemple #5
0
        private void Aufgabe()
        {
            // Zweidimensionales Array erstellen
            int[,] iMatrix = new int[257, 256];
            int    p1      = 0;
            int    p2      = 0;
            String ausgabe = "";


            // Erste Zeile des Array belegen
            iMatrix[1, 0] = 1;

            // Array Zeilenweise durchlaufen
            for (int iY = 1; iY < iMatrix.GetLength(1); iY++)
            {
                // Array ab der zweiten Spalte durchlaufen
                for (int iX = 1; iX < iMatrix.GetLength(0); iX++)
                {
                    p1 = iMatrix[iX - 1, iY - 1];
                    p2 = iMatrix[iX, iY - 1];

// HIER ÄNDERN ----------
                    iMatrix[iX, iY] = (p1 + p2) % 3;
                    ausgabe        += iMatrix[iX, iY];
                }
                Logger.Instance.LogInfo(ausgabe + "\n");
                ausgabe = "";
            }


            for (int iY = 0; iY < iMatrix.GetLength(1); iY++)
            {
                // Array ab der zweiten Spalte durchlaufen
                for (int iX = 1; iX < iMatrix.GetLength(0); iX++)
                {
                    // wenn die Zahl in der Matrix ungerade ist
                    if (iMatrix[iX, iY] != 0)
                    {
                        _painter.PaintPoint(new Vector2(iX - 1, Math.Abs(iY - ImageHeight)), Color.Red);
                    }
                }
            }

            _frame.Repaint();
        }
Exemple #6
0
        private void Aufgabe()
        {
            int iVergleich;
            int iAnzFarben = _palette.Count;

            // Array Zeilenweise durchlaufen
            for (int iY = 0; iY < ImageHeight; iY++)
            {
                // Array ab der zweiten Spalte durchlaufen
                for (int iX = 0; iX < ImageWidth; iX++)
                {
                    int i1, i2;
                    i1 = iY;
                    i2 = iX;
                    i1 = (i1 >> 1) ^ iY;
                    i2 = (i2 >> 1) ^ iX;

                    // Bitweise verknüpfen und zuweisen
                    //iVergleich = (int)(iY & iX);
                    iVergleich = (int)(i1 & i2);

                    //// Wenn der Vergleich 0 ergibt
                    if (iVergleich == 0)
                    {
                        //_palette[iVergleich % iAnzFarben];
                        // roten Punkt zeichnen
                        drawMyDot(iX, iY, Color.Red);
                    }
                    //else
                    //{
                    //    drawMyDot(iX, iY, _palette[iVergleich % iAnzFarben]);
                    //}
                }
            }

            _frame.Repaint();
        }
        public override void Setup()
        {
            // Init. a new random number generator
            _rand = new Random();

            // Create a new raster image for drawing
            _image = new Image <Rgb, byte>(ImageWidth, ImageHeight, new Rgb(Color.Red));

            // Painter initialisieren
            _painter = new Painter(ref _image);

            // Create a new frame to display the raster image
            _frame = new FrmImage(Name, _image, DisplayMode.Zoomable)
            {
                InterpolationMode = InterpolationMode.NearestNeighbor,
                SmoothingMode     = SmoothingMode.None
            };
            _frame.SetImage(_image);

            // Register the click event handler
            _frame.PictureBox.MouseClick += DrawDot;

            //Inform user about possibility to draw dots with the mouse
            Logger.Instance.LogInfo("");

            // rekursive Funkiton
            paintRectBlack(new Vector2(0, 0), new Vector2(ImageWidth, ImageHeight), 1);
            _frame.Repaint();

            // MyMethod: draw some random dots to get started
            // MyMethod(_image);

            // Register this plugin as a GUI extension
            GLabController.Instance.RegisterExtension(this);

            // Additional setup of your plugin
            // ...
        }
Exemple #8
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();
        }