[Guide]Formen mit der Drawing Namespace erstellen

  • Wie angekündigt kommt hier mein Guide zum erstellen von eigenen Formen

    Als erstes zur theorie:

    Wir erstellen als erstes einmal aus linien den umris und wenden ihn dann auf die Form an.

    Zur praxis:

    Als erstes Einmal wie solls aussehen

    diese form besteht aus 8 teilen
    4 kurven und 4 linien

    nun zum Programmcode

    Als erstes erstellen wir den pfad der form

    Code
    Dim path As New Drawing.Drawing2D.GraphicsPath

    nun haben wir ein pfad objekt aber noch keinen pfad
    den fügen wir nun hinzu
    wir beginen als erstes mit der linie die ganz oben ist
    in diesem bild sieht man gut wie die linien und kreise aufgeteilt sind

    Die Linie fängt also ganz oben direkt hinter dem kreis also dem radius an und endet direkt vor dem kreis also dem radius
    der radius hat den wert 20
    daher deklinieren wir eine variable vom type int

    Code
    Dim radius As Integer = 20

    eine linie fügt man so hinzu
    Pfadname.AddLine(Xwert des ersten punktes, ywert des ersten punkts, x des endpunktes, y des endpunkts)
    also für die obere linie

    Code
    path.AddLine(radius, 0, Me.Width - radius, 0)


    dann nehmen wir uns den rechten oberen bogen for

    einen bogen fügt man mit arc hinzu
    arc ist ein teil der elipse
    beim hinzufügen muss man wissen das sie aus enem kasten besteht, dem start winkel und der große in grad
    die box sieht so aus

    der startpunkt ist die position der box und der radius ist die größe der box

    der startwinkel einer ark ist nach untenhin 0 also

    das wäre eine ark mit dem startgrad 0 und der größe 90 grad

    nun wollen wir sie ja dass sie wie oben rechts ist also das es am anfang nach rechts geht und dann hinter der furve nach unten
    also muss der startgrad bei 270 sein und die größe soll 90 sein

    der code für ne ark funktioniert so

    Code
    PfadObject.AddArc(xwert des oberen linken punktes der box, y wert des punktes, länge der box, höhe der box, startgrad, größe)


    die box beginnt wie man oben gut sehen kann hinter der linie also bei der breite der form- radius ergo lautet der code

    Code
    path.AddArc(Me.Width - radius, 0, radius, radius, 270, 90)

    für die anderen kurven und linien rauszufinden muss man nur ein bisschen nachdenken deshalb geh ich da nicht näher drauf ein

    nun haben wir 4 einzelne linien und 4 kurven aber die müssen erst zu einem pfad werden
    das machen wir mit

    Code
    path.CloseFigure()

    nun müssen wir nur noch den pfad auf das objekt (form, picturebox, progressbar, whatever) anwenden
    ich verwende die form (Me) aber bei allen anderen objs der windows.forms gehts genauso

    Code
    Me.Region = New Region(path)

    und jtz nur noch den pfad ausm ram löschen

    Code
    path.Dispose()

    dür die die nur copy und paste wollen hier der gesammte code:

    Zitat von Steve Jobs

    Stay hungry - stay foolish.



  • Zitat von ichbinniemand;196685

    einige wollten das tut aber jtz meldet sich niemand
    Bump

    Ich wollte es und mir fiels nicht auf =)

    Hast du noch vll ein endergebniss wies aussieht ? Ansonsten nice =)

  • Wenn km Probleme hat irgendeine firgur zu erstellen kann er ja mir mal ein Bild wis aussehen soll schicken

    Wenn Interesse besteht mach ich mal einen sammelthrad für Funktionen zu diversen formen

    Zitat von Steve Jobs

    Stay hungry - stay foolish.



  • Du kannst auch mal andere Methoden versuchen
    Für nen Kreis gibt's .addellipse

    Ein Tipp
    Mit dem Raster von Photoshop oder Cinema kann man sich das besser vorstellen

    Zitat von Steve Jobs

    Stay hungry - stay foolish.



Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!