vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
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:  Views:  22.468 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- 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.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle 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.