원그래프 만들기

버전 Alpha

ㅋㅋ.
1빠다.
힘들게 완성했어욤.
그리는건 되는데 0이 맨 위가 아니라 좀 기운...ㅋ
그리고 속에 색 채우는것도...ㅋ
선만 색깔 자동 선정하게 해놨어욤.
나중에 버전 Beta도 업로드 할게여~~~

선생님 말씀에 따라 코드도 ---------------------------------------------------------(버전 1)
Option Explicit

Sub Draw()
    Dim i As Integer
    Dim p1 As Double
    Dim p2 As Double
    Const pi = 3.14159265
    Dim SUM As Integer
    SUM = 0
    For i = 0 To 4
        SUM = SUM + Val(txtPutin(i).Text)
    Next i
    p2 = 0
    For i = 0 To 4
        txtPercent(i).Text = Int(Val(txtPutin(i).Text) / SUM * 100)
        p1 = p2
        p2 = p2 + (Val(txtPutin(i).Text) / SUM * 1000)
        Circle (1400, 2250), 1000, QBColor(i), p1 * -pi / 500, p2 * -pi / 500
    Next i
End Sub

Private Sub cmdDraw_Click()
    Cls
    Draw
End Sub

Private Sub Form_Load()
    Circle (1400, 2250), 1000, QBColor(0)
End Sub

Private Sub txtPercent_GotFocus(Index As Integer)
    cmdDraw.SetFocus
End Sub

Private Sub txtPutin_GotFocus(Index As Integer)
    txtPutin(Index).Text = ""
End Sub


버전 Beta

색깔 처리는 대략 됐는데...
1번째 데이터는 처리가 않됨...
90도 기운 문제는 그대로...ㅋ
나중에 WA 나오면 처리 될까???
(근데 WA 나오기나 할지...?)

코드----------------------------------------------------------------

Option Explicit

Private Color(4) As ColorConstants

Sub Draw()
    Cls
    Dim i As Integer
    Dim p1 As Double
    Dim p2 As Double
    Dim CX, CY
    CX = 1400
    CY = 2250
    Const PI = 3.14159265
    Dim SUM As Integer
    SUM = 0
    For i = 0 To 4
        SUM = SUM + Val(txtPutin(i).Text)
    Next i
    p2 = 0
    FillStyle = 0
    For i = 0 To 4
        txtPercent(i).Text = Int(Val(txtPutin(i).Text) / SUM * 100)
        p1 = p2
        p2 = p2 + (Val(txtPutin(i).Text) / SUM * 1000)
        FillColor = Color(i)
        Circle (CX, CY), 1000, QBColor(i), p1 * PI / 500 * -1, p2 * PI / 500 * -1
    Next i
End Sub

Private Sub cmdDraw_Click()
    Draw
End Sub

Private Sub Form_Load()
    Dim i As Integer
    For i = 0 To 4
        Color(i) = QBColor(i + 10)
    Next i
End Sub

Private Sub mnuColor_Click(Index As Integer)
    On Error Resume Next
    CommonDialog1.DialogTitle = "원그래프 요소의 색상 선택"
    CommonDialog1.Color = Color(Index)
    CommonDialog1.Flags = cdlCCRGBInit
    CommonDialog1.ShowColor
    If Not Err.Number = cdlCancel Then
        Color(Index) = CommonDialog1.Color
        Draw
    End If
End Sub

Private Sub mnuEnd_Click()
    End
End Sub

Private Sub mnuHelp_Click()
    Dim a
    a = MsgBox("세상에서 제일 도움 안되는 도움말을 보시겠습니까?", 35, "도무지 도움이 안되는 도움말")
    If a = 6 Then
        Form2.Show
    Else
        MsgBox ("머, 아님 말구.")
    End If
End Sub

Private Sub txtPercent_GotFocus(Index As Integer)
    cmdDraw.SetFocus
End Sub

Private Sub txtPutin_GotFocus(Index As Integer)
    txtPutin(Index).Text = ""
End Sub



파일 : MakingCircleGraph.exe

by 해파리 | 2008/07/29 23:39 | 정보영재 숙제 | 트랙백 | 덧글(0)

트랙백 주소 : http://jellynote.egloos.com/tb/640976
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶