private static void ZeichneBlatt(Graphics zeichenFlaeche, Random random, PointF anfangsPunkt, PointF endPunkt) { var mittelPunkt = new PointF( anfangsPunkt.X + (endPunkt.X - anfangsPunkt.X) / 2f - 2 + random.Next(4), anfangsPunkt.Y - 11 + random.Next(4) ); var umrissPfad = new GraphicsPath(); umrissPfad.AddLine(anfangsPunkt, endPunkt); umrissPfad.AddBezier( anfangsPunkt.X, anfangsPunkt.Y, mittelPunkt.X - 2 + random.Next(4), mittelPunkt.Y - 2 + random.Next(4), mittelPunkt.X + 2 - random.Next(4), mittelPunkt.Y - 2 + random.Next(4), endPunkt.X, endPunkt.Y ); umrissPfad.CloseFigure(); var grasFarbton = random.Next(4); var grasStift = Farbverwaltung.GrasStift(grasFarbton); var grasBuerste = Farbverwaltung.GrasBuerste(grasFarbton); zeichenFlaeche.FillPath(grasBuerste, umrissPfad); zeichenFlaeche.DrawPath(grasStift, umrissPfad); /* * zeichenFlaeche.DrawEllipse(Pens.LightSalmon, anfangsPunkt.X - 2, anfangsPunkt.Y - 2, 4, 4); * zeichenFlaeche.DrawEllipse(Pens.LightSalmon, mittelPunkt.X - 2, mittelPunkt.Y - 2, 4, 4); * zeichenFlaeche.DrawEllipse(Pens.LightSalmon, endPunkt.X - 2, endPunkt.Y - 2, 4, 4); */ }
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 ); } }
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 ); }
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 ); } } }