zu www.bildungsgueter.de nächster Abschnitt zur Inhaltsübersicht des Kapitels vorheriger Abschnitt

Graphics: Aussehen von Linienverbindungen beeinflussen

Während die Linienverbindungsarten LineJoin.Bevel und LineJoin.Round bei Verwendung mit breiten Strichen auch für sehr spitze Winkel Verbindungen liefern, die die Strichbreite nicht überschreiten, erzeugt die Verbindungsart LineJoin.Miter eine Spitze, die sich beliebig weit vom Schnittpunkt der verbundenen Linien entfernen kann. Diese Effekt wird zwar nur bei sehr spitzen Winkeln augenfällig, ist aber gleichwohl so störend, dass er durch Angabe eines Höchstabstandes vom Schnittpunkt und die Angabe einer Darstellungsalternative begrenzt werden kann.

Rectangle bereich = Rectangle.Inflate(rechteck, -20, -20);

  //  Punkte für erstes Dreieck berechnen
PointF[] punkte = new PointF[3];
punkte[0].X = bereich.Left;
punkte[0].Y = bereich.Top;

punkte[1].X = bereich.Right;
punkte[1].Y = bereich.Top;

punkte[2].X = (bereich.Right + bereich.Left) / 2;
punkte[2].Y = bereich.Top + (bereich.Bottom - bereich.Top) / 4;

  //  Punkte für zweites Dreieck berechnen
  //  (Punkte werden in y-Richtung verschoben)
float deltaY = (bereich.Bottom - bereich.Top) * 2 / 4;
PointF[] punkte2 = new PointF[3];
for (int i = 0; i < punkte.Length; i++)
{
    punkte2[i].X = punkte[i].X;
    punkte2[i].Y = punkte[i].Y + deltaY;
}

using (Pen stift = new Pen (Color.Red, 11.0f))
{
       //  erstes Dreieck zeichnen
     stift.LineJoin = LineJoin.Miter;
     stift.MiterLimit = 1.5; 

     g.DrawPolygon(stift, punkte);

     stift.Color = Color.White;
     stift.Width = 1.0f; 
     g.DrawPolygon(stift, punkte); 
  
       //  zweites Dreieck zeichnen
     stift.Color = Color.Blue;
     stift.Width = 11.0f;
     stift.LineJoin = LineJoin.MiterClipped;
     

     g.DrawPolygon(stift, punkte2);

     stift.Color = Color.White;
     stift.Width = 1.0f;
     g.DrawPolygon(stift, punkte2);
}

Die Darstellung der Linienverbindungen LineJoin.Miter (oben, rot) und LineJoin.MiterClipped (unten, blau) für ein MiterLimit von 1.5f. Bei beiden Dreiecken werden die linke und die rechte Spitze gekappt allerdings in unterschiedlicher Weise:

Gekappte Linienverbindungen "Miter" und "MiterClipped"


vorheriger Abschnitt zur Inhaltsübersicht des Kapitels nächster Abschnitt