Kruhový graf   zodpovězená otázka

VB.NET, WinForms, Grafika

Aplikace má ze zadaných procent udělat kruhový graf

Proč to následující zápis vykreslí špatně? (http://img15.imageshack.us/i/beznzvubg.p... při zadání 10%,20%,30%,40%)

Public Class Form1
    Dim procenta(360) As Byte
    Dim uhly(procenta.Length) As Byte
    Dim uhel As Integer = 0
    Dim ran As New Random


    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        Try
            For i As Integer = 0 To procenta.Length - 1 ' převést procenta na stupně
                Dim a, b As Byte
                a = procenta(i)
                b = 3.6 * a
                uhly(i) = b
            Next
            For i As Integer = 0 To uhly.Length - 1
                e.Graphics.FillPie(rgb, 0, 0, 600, 600, uhel, uhly(i)) 'vykreslit část grafu
                uhel = 0
                For u As Integer = 0 To i ' určit začáteční úhel další části
                    uhel = uhel + uhly(u)
                Next
            Next
        Catch ex As Exception
            MsgBox(Err.Description, , Err.Number)
            Me.Close()
        End Try
    End Sub
    Public Function rgb()
        Dim barva As New SolidBrush(Color.FromArgb(255, ran.Next(0, 255), ran.Next(0, 255), ran.Next(0, 255))) 'náhodná barva
        Return barva
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            For i As Integer = 0 To 360
                Dim c As Integer = CInt(InputBox("Zadejte hodnotu " & i & " (v procentech, -1 pro konec)")) 'zjištění hodnot
                If c <> -1 Then
                    procenta(i) = c
                ElseIf c = -1 Then
                    Exit For
                End If
            Next
        Catch ex As Exception
            MsgBox(Err.Description, , Err.Number)
            Me.Close()
        End Try
    End Sub
End Class

Za každou radu předem děkuji

(VS 2010 Professional, .NET framework 4.0)

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Použijte Microsoft Chart Controls a nebudete to muset řešit. Kromě toho to bude vypadat nesrovnatelně lépe.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Problém je v barve pro každé zadané procento mustíte mít také generovanou barvu. Jinak se generuje pokaždé jiná a to i při částečném překreslení.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback