예제 #1
0
        private static void ZeichneGummiband(Control woBinIch, Graphics zeichenFlaeche, LevelArchitekturPfad architekturPfad)
        {
            var grafikPfad = LevelZeichner.AlsPfad(woBinIch, architekturPfad);

            if (architekturPfad.IstRechteck || architekturPfad.IstGefuellt)
            {
                /* gefüllt geht nur als geschlossene kurva */
                if (architekturPfad.IstGefuellt)
                {
                    zeichenFlaeche.FillClosedCurve(
                        Farbverwaltung.BuersteVonMedium(architekturPfad.terrainMaterial),
                        grafikPfad.PathPoints,
                        FillMode.Alternate,
                        0.62f
                        );
                }

                zeichenFlaeche.DrawClosedCurve(
                    Farbverwaltung.StiftVonMedium(architekturPfad.terrainMaterial, architekturPfad.StiftDicke),
                    grafikPfad.PathPoints,
                    0.62f,
                    FillMode.Alternate
                    );
            }
            else
            {
                zeichenFlaeche.DrawCurve(
                    Farbverwaltung.StiftVonMedium(architekturPfad.terrainMaterial, architekturPfad.StiftDicke),
                    grafikPfad.PathPoints,
                    0.62f
                    );
            }
        }
예제 #2
0
        private static void ZeichneEi(Control woBinIch, Graphics zeichenFlaeche, LevelArchitekturPfad architekturPfad)
        {
            var grafikPfad = LevelZeichner.AlsPfad(woBinIch, architekturPfad);

            if (architekturPfad.IstGefuellt)
            {
                zeichenFlaeche.FillEllipse(
                    Farbverwaltung.BuersteVonMedium(architekturPfad.terrainMaterial),
                    grafikPfad.PathPoints[0].X,
                    grafikPfad.PathPoints[0].Y,
                    Math.Abs(grafikPfad.PathPoints[1].X - grafikPfad.PathPoints[0].X) + 1,
                    Math.Abs(grafikPfad.PathPoints[1].Y - grafikPfad.PathPoints[0].Y) + 1
                    );
            }

            zeichenFlaeche.DrawEllipse(
                Farbverwaltung.StiftVonMedium(architekturPfad.terrainMaterial, architekturPfad.StiftDicke),
                grafikPfad.PathPoints[0].X,
                grafikPfad.PathPoints[0].Y,
                Math.Abs(grafikPfad.PathPoints[1].X - grafikPfad.PathPoints[0].X) + 1,
                Math.Abs(grafikPfad.PathPoints[1].Y - grafikPfad.PathPoints[0].Y) + 1
                );
        }
예제 #3
0
        private static void ZeichnePfad(Control woBinIch, Graphics zeichenFlaeche, LevelArchitekturPfad architekturPfad)
        {
            var grafikPfad = LevelZeichner.AlsPfad(woBinIch, architekturPfad);

            if (architekturPfad.IstPunkt)
            {
                zeichenFlaeche.DrawLine(
                    Farbverwaltung.StiftVonMedium(architekturPfad.terrainMaterial, architekturPfad.StiftDicke),
                    grafikPfad.PathPoints[0],
                    grafikPfad.PathPoints[0]
                    );
            }
            else if (architekturPfad.IstLinie)
            {
                if (architekturPfad.IstRechteck)
                {
                    if (architekturPfad.IstGefuellt)
                    {
                        zeichenFlaeche.FillRectangle(
                            Farbverwaltung.BuersteVonMedium(architekturPfad.terrainMaterial),
                            grafikPfad.PathPoints[0].X,
                            grafikPfad.PathPoints[0].Y,
                            Math.Abs(grafikPfad.PathPoints[1].X - grafikPfad.PathPoints[0].X) + 1,
                            Math.Abs(grafikPfad.PathPoints[1].Y - grafikPfad.PathPoints[0].Y) + 1
                            );
                    }

                    zeichenFlaeche.DrawRectangle(
                        Farbverwaltung.StiftVonMedium(architekturPfad.terrainMaterial, architekturPfad.StiftDicke),
                        grafikPfad.PathPoints[0].X,
                        grafikPfad.PathPoints[0].Y,
                        Math.Abs(grafikPfad.PathPoints[1].X - grafikPfad.PathPoints[0].X) + 1,
                        Math.Abs(grafikPfad.PathPoints[1].Y - grafikPfad.PathPoints[0].Y) + 1
                        );
                }
                else
                {
                    zeichenFlaeche.DrawLine(
                        Farbverwaltung.StiftVonMedium(architekturPfad.terrainMaterial, architekturPfad.StiftDicke),
                        grafikPfad.PathPoints[0],
                        grafikPfad.PathPoints[1]
                        );
                }
            }
            else
            {
                if (architekturPfad.IstGefuellt)
                {
                    zeichenFlaeche.FillPath(
                        Farbverwaltung.BuersteVonMedium(architekturPfad.terrainMaterial),
                        grafikPfad
                        );
                }
                else
                {
                    zeichenFlaeche.DrawPath(
                        Farbverwaltung.StiftVonMedium(architekturPfad.terrainMaterial, architekturPfad.StiftDicke),
                        grafikPfad
                        );
                }
            }
        }