vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 
zurück
Rubrik: Grafik und Font · Grafische Effekte   |   VB-Versionen: VB.NET19.09.05
Einfaches Kreisdiagramm (VB.NET)

Mit Hilfe der FillPie-Methode lässt sich unter VB.NET schnell und einfach ein Kreisdiagramm erstellen.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  21.541 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Das Komplizierte beim Erstellen eines Kreisdiagramms ist normalerweise die Berechnung der einzelnen Kreissegmente. Unter VB.NET ist das jedoch überhaupt nicht schwierig, da man hier auf die "vorgefertige" FillPie-Methode zurückgreifen kann.

Erstellen Sie ein neues Windows-Forms-Projekt und platzieren auf die Form ein PictureBox- und ein CommandButton-Control. Fügen Sie nachfolgenden Code in den Codeteil der Form ein. Beim Klick auf den Button wird dann ein Kreisdiagramm mit vorgegebenen Werten gezeichnet. Das Diagramm selbst wird hierbei im PictureBox-Control ausgegeben.

Public Class Form1
  Inherits System.Windows.Forms.Form
  Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
 
    ' Werte
    Dim nValue() As Integer = {10, 20, 30, 15, 45, 12, 28}
 
    With PictureBox1
      ' Kreis zeichnen (PictureBox wird als Ausgabe-Objekt übergeben)
      DrawPie(nValue, PictureBox1)
    End With
  End Sub
  ' Einfaches Kreisdiagramm
  Private Sub DrawPie(ByVal nValue() As Integer, ByVal oOutput As Object)
    ' Farben
    Dim nColor() As Color = {Color.Moccasin, _
      Color.Navy, _
      Color.Yellow, _
      Color.Silver, _
      Color.SandyBrown, _
      Color.Red, _
      Color.MistyRose, _
      Color.MediumPurple, _
      Color.LimeGreen, _
      Color.Cyan, _
      Color.Beige, _
      Color.AliceBlue}
 
    ' Graphics-Objekt
    Dim g As Graphics = oOutput.CreateGraphics
 
    ' Außmaße
    Dim nWidth As Integer = oOutput.Width
    Dim nHeight As Integer = oOutput.Height
 
    ' Summe aller Werte ermitteln
    Dim nMax As Integer
    Dim i As Integer
 
    For i = 0 To UBound(nValue)
      nMax += nValue(i)
    Next
 
    Dim nPercent As Integer
    Dim nAngle As Integer
    Dim nStartAngle As Integer
    Dim brush As System.Drawing.SolidBrush
    Dim nColIndex As Integer = 0
 
    ' Kreis zeichnen
    For i = 0 To UBound(nValue)
      brush = New System.Drawing.SolidBrush(nColor(nColIndex))
 
      ' Größe des Kreissegment berechnen
      nPercent = CInt(nValue(i) / nMax * 100 + 0.5)
      nAngle = 360 * (nPercent / 100)
 
      ' Anfangswinkel
      If nStartAngle + nAngle > 360 Then nAngle = 360 - nStartAngle
 
      ' Segment zeichnen
      g.FillPie(brush, New Rectangle(0, 0, nWidth, nHeight), nStartAngle, nAngle)
 
      ' neuen Anfangspunkt berechnen
      nStartAngle += nAngle
 
      ' nächster Farbwert
      nColIndex += 1
      If nColIndex > UBound(nColor) Then nColIndex = 0
    Next i
    g.Dispose()
  End Sub
End Class

Dieser Tipp wurde bereits 21.541 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen [email protected]  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren [email protected]!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2022 [email protected] Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel