Funktion um Rechteck mit runden Ecken mittels x und y Radius zu zeichnen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von faxe1008.

    Funktion um Rechteck mit runden Ecken mittels x und y Radius zu zeichnen

    Hi zusammen,

    ich würde gerne mittels GDI das folgende Rechteck zeichnen.

    wie man eine normales Rechteck mit abgerundeten Ecken zeichnet weiß ich, aber hat jemand für dieses Rechteck eine Idee oder einen Vorschlag?

    Vielen Dank für eure Hilfe.
    Bilder
    • IC535914.jpg

      4,69 kB, 218×112, 861 mal angesehen
    Hallo, ich kenne zwar keine Funktion, die das kann, aber mittels etwas Trigonometrie dürfte das problemlos möglich sein. Mithilfe einiger Beziheungen am rechtwinkligen Dreieck kann man relativ leicht die Punkte berechnen.
    Ich habe mal aus langer Weile einen Stern versucht zu malen. Dabei musste ich natürlich auch Punkte auf einer Kreisbahn berechnen. Wie ich das alles gemacht habe steht auf meiner Webseite:
    code-13.net/Tutorials/GDIPlus/Star.aspx
    Mit etwas anpassung funktioniert das auch bei deinem "Viereck".
    Hi

    also ich habe die Lösung gefunden, sie war sooo einfach und ich hab sie erst nicht gesehen!!!!!
    He he

    Viel Spaß damit! :)

    VB.NET-Quellcode

    1. Private Sub DrawRoundedRect(ByVal g As Graphics, ByVal pen As Pen, ByVal Rect As RectangleF, ByVal RadiusX As Single, ByVal RadiusY As Single)
    2. Dim locGrafikPfad As New GraphicsPath
    3. Dim locEckengröße As New SizeF(RadiusX, RadiusY)
    4. Dim locEckbogen As New RectangleF(Rect.Location, locEckengröße)
    5. With locGrafikPfad
    6. 'Oben links
    7. .AddArc(locEckbogen, 180, 90)
    8. 'Oben rechts
    9. locEckbogen.X = Rect.Right - RadiusX
    10. .AddArc(locEckbogen, 270, 90)
    11. 'Unten rechts
    12. locEckbogen.Y = Rect.Bottom - RadiusY
    13. .AddArc(locEckbogen, 0, 90)
    14. 'Unten links
    15. locEckbogen.X = Rect.Left
    16. .AddArc(locEckbogen, 90, 90)
    17. .CloseFigure()
    18. End With
    19. g.DrawPath(pen, locGrafikPfad)
    20. End Sub


    Viele Grüße