2008년 07월 29일
원그래프 만들기
버전 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
ㅋㅋ.
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)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]