home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 April / CMCD0404.ISO / Software / Demo / conceptdraw / data1.cab / Samples__Basic / SimpleDrawing / DrawSlices / DrawSlices.cdb next >
Text File  |  2004-02-13  |  9KB  |  131 lines

  1. '╨₧╨▒╤è╤Å╨▓╨╗╨╡╨╜╨╕╨╡ ╨┐╤Ç╨╛╤å╨╡╨┤╤â╤Ç╤ï DrawSlice, ╤é╨╡╨╗╨╛ ╨║╨╛╤é╨╛╤Ç╨╛╨╣ ╨▒╤â╨┤╨╡╤é ╨╛╨┐╤Ç╨╡╨┤╨╡╨╗╨╡╨╜╨╛ ╨╜╨╕╨╢╨╡.
  2. 'x1 ╨╕ y1         - ╨║╨╛╨╛╤Ç╨┤╨╕╨╜╨░╤é╤ï ╤å╨╡╨╜╤é╤Ç╨░ ╨╛╨║╤Ç╤â╨╢╨╜╨╛╤ü╤é╨╕, ╨║╨╛╤é╨╛╤Ç╨╛╨╣ ╨┐╤Ç╨╕╨╜╨░╨┤╨╗╨╡╨╢╨╕╤é Slice.
  3. 'r            - ╤Ç╨░╨┤╨╕╤â╤ü ╤ì╤é╨╛╨╣ ╨╛╨║╤Ç╤â╨╢╨╜╨╛╤ü╤é╨╕.
  4. 'iSumPercent     - ╨║╨╛╨╗╨╕╤ç╨╡╤ü╤é╨▓╨╛ ╨┐╤Ç╨╛╤å╨╡╨╜╤é╨╛╨▓, ╨╜╨░ ╨║╨╛╤é╨╛╤Ç╨╛╨╡ ╨╜╨░╤ç╨░╨╗╨╛ ╤ü╨╡╨║╤é╨╛╤Ç╨░ ╨╛╤é╤ü╤é╨╛╨╕╤é ╨╛╤é ╨╜╨░╤ç╨░╨╗╤î╨╜╨╛╨╣ ╨╛╤ü╨╕.
  5. 'iNewPercent      - ╨║╨╛╨╗╨╕╤ç╨╡╤ü╤é╨▓╨╛ ╨┐╤Ç╨╛╤å╨╡╨╜╤é╨╛╨▓, ╨║╨╛╤é╨╛╤Ç╨╛╨╡ ╨╕╨╖╨╛╨▒╤Ç╨░╨╢╨░╨╡╤é ╤ì╤é╨╛╤é Slice. ╨Æ ╤ü╤â╨╝╨╝╨╡ ╤ü iSumPercent 
  6. '              ╨╛╨┐╤Ç╨╡╨┤╨╡╨╗╤Å╨╡╤é iSumPercent ╨┤╨╗╤Å ╤ü╨╗╨╡╨┤╤â╤Ä╤ë╨╡╨│╨╛ Slice, ╨╡╤ü╨╗╨╕ ╤ì╤é╨╕ Slice ╤ü╨╛╤ü╤é╨░╨▓╨╗╤Å╤Ä╤é 
  7. '              ╤ü╨┐╨╗╨╛╤ê╨╜╤â╤Ä ╨┐╨╛╤ü╨╗╨╡╨┤╨╛╨▓╨░╤é╨╡╨╗╤î╨╜╨╛╤ü╤é╤î ╨▓ ╨┐╤Ç╨╡╨┤╨╡╨╗╨░╤à ╨╛╨┤╨╜╨╛╨╣ ╨┤╨╕╨░╨│╤Ç╨░╨╝╨╝╤ï.
  8. 'iR             - ╤å╨▓╨╡╤é Red ╨║╨╛╨╝╨┐╨╛╨╜╨╡╨╜╤é╤ï ╤å╨▓╨╡╤é╨░ Slice ╨▓ RGB-╨┐╤Ç╨╡╨┤╤ü╤é╨░╨▓╨╗╨╡╨╜╨╕╨╕.
  9. 'iG             - ╤å╨▓╨╡╤é Green ╨║╨╛╨╝╨┐╨╛╨╜╨╡╨╜╤é╤ï ╤å╨▓╨╡╤é╨░ Slice ╨▓ RGB-╨┐╤Ç╨╡╨┤╤ü╤é╨░╨▓╨╗╨╡╨╜╨╕╨╕.
  10. 'iB             - ╤å╨▓╨╡╤é Blue ╨║╨╛╨╝╨┐╨╛╨╜╨╡╨╜╤é╤ï ╤å╨▓╨╡╤é╨░ Slice ╨▓ RGB-╨┐╤Ç╨╡╨┤╤ü╤é╨░╨▓╨╗╨╡╨╜╨╕╨╕.
  11. Declare Sub DrawSlice(x1 As Double,y1 As Double,r As Double,iSumPercent As Integer,iNewPercent as Integer,iR as Integer,iG as Integer,iB as Integer)
  12.  
  13. Sub DrawSlices()
  14.     Dim active_page As Page        '╨í╤ü╤ï╨╗╨║╨░ ╨╜╨░ ╨░╨║╤é╨╕╨▓╨╜╤â╤Ä ╤ü╤é╤Ç╨░╨╜╨╕╤å╤â ╤é╨╡╨║╤â╤ë╨╡╨│╨╛ ╨┤╨╛╨║╤â╨╝╨╡╨╜╤é╨░.
  15.     Dim new_rect As Shape        '╨í╤ü╤ï╨╗╨║╨░ ╨╜╨░ ╨╛╨▒╤è╨╡╨║╤é-╤ê╤ì╨╣╨┐, ╨┐╤Ç╨╡╨┤╤ü╤é╨░╨▓╨╗╤Å╤Ä╤ë╨╕╨╣ ╨╜╨╛╨▓╤ï╨╣ ╨┐╨╛╤ü╤é╤Ç╨╛╨╡╨╜╨╜╤ï╨╣ ╨┐╤Ç╤Å╨╝╨╛╤â╨│╨╛╨╗╤î╨╜╨╕╨║.
  16.     Dim dR As Double            '╨á╨░╨┤╨╕╤â╤ü ╨┤╨╝╨░╨│╤Ç╨░╨╝╨╝╤ï.
  17.     Dim dCenterX As Double        '╨Ü╨╛╨╛╤Ç╨┤╨╕╨╜╨░╤é╨░ X ╤å╨╡╨╜╤é╤Ç╨░ ╨┤╨╕╨░╨│╤Ç╨░╨╝╨╝╤ï
  18.     Dim dCenterY As Double        '╨Ü╨╛╨╛╤Ç╨┤╨╕╨╜╨░╤é╨░ Y ╤å╨╡╨╜╤é╤Ç╨░ ╨┤╨╕╨░╨│╤Ç╨░╨╝╨╝╤ï
  19.     Dim iR As Integer            '╨ª╨▓╨╡╤é Red ╨║╨╛╨╝╨┐╨╛╨╜╨╡╨╜╤é╤ï ╤å╨▓╨╡╤é╨░ Slice ╨▓ RGB-╨┐╤Ç╨╡╨┤╤ü╤é╨░╨▓╨╗╨╡╨╜╨╕╨╕.
  20.     Dim iG As Integer            '╨ª╨▓╨╡╤é Green ╨║╨╛╨╝╨┐╨╛╨╜╨╡╨╜╤é╤ï ╤å╨▓╨╡╤é╨░ Slice ╨▓ RGB-╨┐╤Ç╨╡╨┤╤ü╤é╨░╨▓╨╗╨╡╨╜╨╕╨╕.
  21.     Dim iB As Integer            '╨ª╨▓╨╡╤é Blue ╨║╨╛╨╝╨┐╨╛╨╜╨╡╨╜╤é╤ï ╤å╨▓╨╡╤é╨░ Slice ╨▓ RGB-╨┐╤Ç╨╡╨┤╤ü╤é╨░╨▓╨╗╨╡╨╜╨╕╨╕.
  22.     Dim iNewPercent As Integer    '╨Ü╨╛╨╗╨╕╤ç╨╡╤ü╤é╨▓╨╛ ╨┐╤Ç╨╛╤å╨╡╨╜╤é╨╛╨▓, ╨║╨╛╤é╨╛╤Ç╨╛╨╡ ╨╕╨╖╨╛╨▒╤Ç╨░╨╢╨░╨╡╤é ╤ì╤é╨╛╤é Slice. ╨Æ ╤ü╤â╨╝╨╝╨╡ ╤ü dSumPercent 
  23.                         '╨╛╨┐╤Ç╨╡╨┤╨╡╨╗╤Å╨╡╤é dSumPercent ╨┤╨╗╤Å ╤ü╨╗╨╡╨┤╤â╤Ä╤ë╨╡╨│╨╛ Slice, ╨╡╤ü╨╗╨╕ ╤ì╤é╨╕ Slice ╤ü╨╛╤ü╤é╨░╨▓╨╗╤Å╤Ä╤é 
  24.                         '╤ü╨┐╨╗╨╛╤ê╨╜╤â╤Ä ╨┐╨╛╤ü╨╗╨╡╨┤╨╛╨▓╨░╤é╨╡╨╗╤î╨╜╨╛╤ü╤é╤î ╨▓ ╨┐╤Ç╨╡╨┤╨╡╨╗╨░╤à ╨╛╨┤╨╜╨╛╨╣ ╨┤╨╕╨░╨│╤Ç╨░╨╝╨╝╤ï.
  25.     Dim iSumPercent As Integer    '╨í╤ç╨╡╤é╤ç╨╕╨║ ╨╖╨░╨┐╨╛╨╗╨╜╨╡╨╜╨╛╤ü╤é╨╕ ╨║╤Ç╤â╨│╨░ ╨┤╨╕╨░╨│╤Ç╨░╨╝╨╝╤ï. ╨Ü╨╛╨╗╨╕╤ç╨╡╤ü╤é╨▓╨╛ ╨┐╤Ç╨╛╤å╨╡╨╜╤é╨╛╨▓, ╨╜╨░ ╨║╨╛╤é╨╛╤Ç╨╛╨╡ 
  26.                         '╨╜╨░╤ç╨░╨╗╨╛ ╨╜╨╛╨▓╨╛╨│╨╛ ╤ü╨╡╨║╤é╨╛╤Ç╨░ ╨╛╤é╤ü╤é╨╛╨╕╤é ╨╛╤é ╨╜╨░╤ç╨░╨╗╤î╨╜╨╛╨╣ ╨╛╤ü╨╕.
  27.                         '╨ö╨╗╤Å ╨┐╨╡╤Ç╨▓╨╛╨│╨╛ ╤ü╨╡╨║╤é╨╛╤Ç╨░ ╤Ç╨░╨▓╨╡╨╜ 0, ╨┐╨╛╤ü╨╗╨╡ ╨┐╨╛╤ü╤é╤Ç╨╛╨╡╨╜╨╕╤Å ╨┐╨╛╤ü╨╗╨╡╨┤╨╜╨╡╨│╨╛ ╤ü╨╡╨║╤é╨╛╤Ç╨░ ╨┤╨╕╨░╨│╤Ç╨░╨╝╨╝╤ï 
  28.                         '╨┐╤Ç╨╕╨╜╨╕╨╝╨░╨╡╤é ╨╖╨╜╨░╤ç╨╡╨╜╨╕╨╡ 100.
  29.  
  30.     
  31.     '╨ƒ╨╛╨╗╤â╤ç╨░╨╡╨╝ ╤ü╤ü╤ï╨╗╨║╤â ╨╜╨░ ╨░╨║╤é╨╕╨▓╨╜╤â╤Ä ╤ü╤é╤Ç╨░╨╜╨╕╤å╤â ╤é╨╡╨║╤â╤ë╨╡╨│╨╛ ╨┤╨╛╨║╤â╨╝╨╡╨╜╤é╨░. ╨ÿ╤ü╨┐╨╛╨╗╤î╨╖╤â╨╡╨╝ ╨│╨╗╨╛╨▒╨░╨╗╤î╨╜╤â╤Ä ╨┐╨╡╤Ç╨╡╨╝╨╡╨╜╨╜╤â╤Ä thisDoc
  32.     '╨┤╨╗╤Å ╨┤╨╛╤ü╤é╤â╨┐╨░ ╨║ ╨╛╨▒╤è╨╡╨║╤é╤â Document.
  33.     Set active_page = thisDoc.ActivePage 
  34.     
  35.     '╨₧╤ç╨╕╤ü╤é╨╕╤é╤î ╨░╨║╤é╨╕╨▓╨╜╤â╤Ä ╤ü╤é╤Ç╨░╨╜╨╕╤å╤â ╨┤╨╛╨║╤â╨╝╨╡╨╜╤é╨░ ╨╛╤é ╨▓╤ü╨╡╤à ╨╜╨░╤à╨╛╨┤╤Å╤ë╨╕╤à╤ü╤Å ╨╜╨░ ╨╜╨╡╨╣ ╤ü╨╡╨╣╤ç╨░╤ü ╤ê╤ì╨╣╨┐╨╛╨▓.
  36.     active_page.RemoveAllShapes()
  37.     
  38.     '╨ÿ╨╜╨╕╤å╨╕╨░╨╗╨╕╨╖╨░╤å╨╕╤Å ╨│╨╡╨╜╨╡╤Ç╨░╤é╨╛╤Ç╨░ ╤ü╨╗╤â╤ç╨░╨╣╨╜╤ï╤à ╤ç╨╕╤ü╨╡╨╗
  39.     Randomize
  40.     '╨ƒ╨╛╤ü╤é╤Ç╨╛╨╡╨╜╨╕╨╡ ╤ü╨╡╤Ç╨╕╨╕ ╨║╤Ç╤â╨│╨╛╨▓╤ï╤à ╨┤╨╕╨░╨│╤Ç╨░╨╝╨╝ ╤â╨╝╨╡╨╜╤î╤ê╨░╤Ä╤ë╨╕╤à╤ü╤Å ╤Ç╨░╨┤╨╕╤â╤ü╨╛╨▓: ╨╛╤é 500 ╤Ä╨╜╨╕╤é╨╛╨▓
  41.     '╨┤╨╛ 200, ╨║╨░╨╢╨┤╤ï╨╣ ╨╜╨╛╨▓╤ï╨╣ ╤Ç╨░╨┤╨╕╤â╤ü ╨╝╨╡╨╜╤î╤ê╨╡ ╨╜╨░ 50 ╤Ä╨╜╨╕╤é╨╛╨▓.
  42.     For dR=500 To 200 Step -50
  43.         '╨₧╨▒╨╜╤â╨╗╨╡╨╜╨╕╨╡ ╤ü╤ç╨╡╤é╤ç╨╕╨║╨░ ╨╖╨░╨┐╨╛╨╗╨╜╨╡╨╜╨╛╤ü╤é╨╕ ╨║╤Ç╤â╨│╨░ (╨▓ ╨┐╤Ç╨╛╤å╨╡╨╜╤é╨░╤à).
  44.         iSumPercent = 0
  45.         '╨₧╨┐╤Ç╨╡╨┤╨╡╨╗╨╡╨╜╨╕╨╡ ╨║╨╛╨╛╤Ç╨┤╨╕╨╜╨░╤é ╤å╨╡╨╜╤é╤Ç╨░ ╨┤╨╕╨░╨│╤Ç╨░╨╝╨╝╤ï
  46.         dCenterX = Rnd()*(1900 - 2 * dR) + (100 + dR)
  47.         dCenterY = Rnd()*(2770 - 2 * dR) + (100 + dR)
  48.         Do
  49.             '╨₧╨┐╤Ç╨╡╨┤╨╡╨╗╨╡╨╜╨╕╨╡ ╨▓╨╡╨╗╨╕╤ç╨╕╨╜╤ï ╤ü╨╗╨╡╨┤╤â╤Ä╤ë╨╡╨│╨╛ ╤ü╨╡╨║╤é╨╛╤Ç╨░ (╨▓ ╨┐╤Ç╨╛╤å╨╡╨╜╤é╨░╤à).
  50.             '╨í╨╗╤â╤ç╨░╨╣╨╜╨╛╨╡ ╤å╨╡╨╗╨╛╨╡ ╤ç╨╕╤ü╨╗╨╛ ╨▓ ╨╕╨╜╤é╨╡╤Ç╨▓╨░╨╗╨╡ ╨╛╤é 5% ╨┤╨╛ 75% ╤ü ╤ê╨░╨│╨╛╨╝ 5%
  51.             iNewPercent = CInt(Int( Rnd() * 15) + 1) * 5
  52.             '╨ò╤ü╨╗╨╕ ╨╜╨╛╨▓╨╛╨╡ ╨╖╨╜╨░╤ç╨╡╨╜╨╕╨╡ ╨▓ ╤ü╤â╨╝╨╝╨╡ ╤ü ╨┐╤Ç╨╡╨┤╤ï╨┤╤â╤ë╨╕╨╝╨╕ ╨┐╤Ç╨╡╨▓╤ï╤ê╨░╨╡╤é 100%, ╨┐╤Ç╨╛╨╕╨╖╨▓╨╛╨┤╨╕╤é╤ü╤Å 
  53.             '╤â╤ü╨╡╤ç╨╡╨╜╨╕╨╡ ╨┐╨╛╨╗╤â╤ç╨╡╨╜╨╜╨╛╨│╨╛ ╤ç╨╕╤ü╨╗╨░.
  54.             If iSumPercent + iNewPercent > 100 Then
  55.                 iNewPercent = 100 - iSumPercent 
  56.             End If
  57.             '╨₧╨┐╤Ç╨╡╨┤╨╡╨╗╨╡╨╜╨╕╨╡ ╤ü╨╗╤â╤ç╨░╨╣╨╜╤ï╨╝ ╨╛╨▒╤Ç╨░╨╖╨╛╨╝ RGB-╤ü╨╛╤ü╤é╨░╨▓╨╗╤Å╤Ä╤ë╨╕╤à ╤å╨▓╨╡╤é╨░.
  58.             '╨º╤é╨╛╨▒╤ï ╤å╨▓╨╡╤é ╨▒╤ï╨╗ ╨╜╨╡ ╤ü╨╗╨╕╤ê╨║╨╛╨╝ ╤é╨╡╨╝╨╜╤ï╨╝, ╨╖╨╜╨░╤ç╨╡╨╜╨╕╤Å ╤ü╨╛╤ü╤é╨░╨▓╨╗╤Å╤Ä╤ë╨╕╤à ╨╜╨╡ ╨╝╨╡╨╜╤î╤ê╨╡ 125.
  59.             iR = Int( Rnd() * 131) + 125 
  60.             iG = Int( Rnd() * 131) + 125
  61.             iB = Int( Rnd() * 131) + 125
  62.             '╨Æ╤ï╨╖╨╛╨▓ ╨┐╤Ç╨╛╤å╨╡╨┤╤â╤Ç╤ï DrawSlice ╨┤╨╗╤Å ╨┐╨╛╤ü╤é╤Ç╨╛╨╡╨╜╨╕╤Å ╨╜╨╛╨▓╨╛╨│╨╛ Slice.
  63.             DrawSlice(dCenterX, dCenterY, dR, iSumPercent, iNewPercent, iR, iG, iB)
  64.             '╨É╨║╤é╤â╨░╨╗╨╕╨╖╨░╤å╨╕╤Å ╨╖╨╜╨░╤ç╨╡╨╜╨╕╤Å ╤ü╤ç╨╡╤é╤ç╨╕╨║╨░ ╨╖╨░╨┐╨╛╨╗╨╜╨╡╨╜╨╛╤ü╤é╨╕ ╨║╤Ç╤â╨│╨░ 
  65.             iSumPercent = iSumPercent + iNewPercent 
  66.         '╨Æ╤ï╤à╨╛╨┤ ╨╕╨╖ ╤å╨╕╨║╨╗╨░, ╨╡╤ü╨╗╨╕ ╨║╤Ç╤â╨│ ╨╖╨░╨┐╨╛╨╗╨╜╨╡╨╜ ╨╜╨░ ╨▓╤ü╨╡ 100%
  67.         Loop While iSumPercent < 100
  68.     Next
  69.     
  70. End Sub
  71.  
  72. '╨ó╨╡╨╗╨╛ ╨┐╤Ç╨╛╤å╨╡╨┤╤â╤Ç╤ï DrawSlice
  73. Sub DrawSlice(x1 As Double,y1 As Double,r As Double,iSumPercent As Integer,iNewPercent as Integer,iR as Integer,iG as Integer,iB as Integer)
  74.     '╨Ü╨╛╨╛╤Ç╨┤╨╕╨╜╨░╤é╤ï ╤é╨╛╤ç╨╡╨║, ╨╕╤ü╨┐╨╛╨╗╤î╨╖╤â╨╡╨╝╤ï╤à ╨┐╤Ç╨╕ ╨┐╨╛╤ü╤é╤Ç╨╛╨╡╨╜╨╕╨╕ ╤ü╨╡╨║╤é╨╛╤Ç╨░.
  75.     '╨Ü╨╛╨╛╤Ç╨┤╨╕╨╜╨░╤é╤ï ╨╜╨░╤ç╨░╨╗╤î╨╜╨╛╨╣ ╤é╨╛╤ç╨║╨╕ ╨┤╤â╨│╨╕ ╤ü╨╡╨║╤é╨╛╤Ç╨░.
  76.     Dim x2 As Double
  77.     Dim y2 As Double
  78.     '╨Ü╨╛╨╛╤Ç╨┤╨╕╨╜╨░╤é╤ï ╨║╨╛╨╜╨╡╤ç╨╜╨╛╨╣ ╤é╨╛╤ç╨║╨╕ ╨┤╤â╨│╨╕ ╤ü╨╡╨║╤é╨╛╤Ç╨░.
  79.     Dim x3 As Double
  80.     Dim y3 As Double
  81.     '╨Ü╨╛╨╛╤Ç╨┤╨╕╨╜╨░╤é╤ï ╤ü╨╡╤Ç╨╡╨┤╨╕╨╜╤ï ╨┤╤â╨│╨╕ ╤ü╨╡╨║╤é╨╛╤Ç╨░.
  82.     Dim x4 As Double
  83.     Dim y4 As Double
  84.     '╨ú╨│╨╛╨╗, ╨╜╨░ ╨║╨╛╤é╨╛╤Ç╤ï╨╣ ╨╜╨░╤ç╨░╨╗╨╛ ╤ü╨╡╨║╤é╨╛╤Ç╨░ ╨╛╤é╤ü╤é╨╛╨╕╤é ╨╛╤é ╨╜╨░╤ç╨░╨╗╤î╨╜╨╛╨╣ ╨╛╤ü╨╕.
  85.     Dim dCurrAngle as Double
  86.     '╨ª╨╡╨╜╤é╤Ç╨░╨╗╤î╨╜╤ï╨╣ ╤â╨│╨╛╨╗ ╤ü╨╡╨║╤é╨╛╤Ç╨░.
  87.     Dim dSliceAngle as Double
  88.     '╨í╤ü╤ï╨╗╨║╨░ ╨╜╨░ ╨╛╨▒╤è╨╡╨║╤é-╤ê╤ì╨╣╨┐, ╨┐╤Ç╨╡╨┤╤ü╤é╨░╨▓╨╗╤Å╤Ä╤ë╨╕╨╣ ╨╜╨╛╨▓╤ï╨╣ Slice.
  89.     Dim new_Slice As Shape
  90.     '╨í╤ü╤ï╨╗╨║╨░ ╨╜╨░ ╨░╨║╤é╨╕╨▓╨╜╤â╤Ä ╤ü╤é╤Ç╨░╨╜╨╕╤å╤â ╤é╨╡╨║╤â╤ë╨╡╨│╨╛ ╨┤╨╛╨║╤â╨╝╨╡╨╜╤é╨░.
  91.     Dim active_Page As Page
  92.     
  93.     '╨Æ╤ï╤ç╨╕╤ü╨╗╨╡╨╜╨╕╨╡ ╨│╨╗╨╛╨▒╨░╨╗╤î╨╜╤ï╤à ╨║╨╛╨╛╤Ç╨┤╨╕╨╜╨░╤é ╤é╨╛╤ç╨╡╨║, ╨┐╨╛ ╨║╨╛╤é╨╛╤Ç╤ï╨╝ ╤ü╤é╤Ç╨╛╨╕╤é╤ü╤Å Slice.
  94.     '╨Ü╨╛╨╛╤Ç╨┤╨╕╨╜╨░╤é╤ï ╨▓╤ï╤ç╨╕╤ü╨╗╤Å╤Ä╤é╤ü╤Å ╨┐╨╛ ╤Ç╨░╨┤╨╕╤â╤ü╤â ╨╛╨║╤Ç╤â╨╢╨╜╨╛╤ü╤é╨╕ ╨╕ ╤â╨│╨╗╤â ╨┐╨╛╨▓╨╛╤Ç╨╛╤é╨░ ╨╛╤é╨╜╨╛╤ü╨╕╤é╨╡╨╗╤î╨╜╨╛
  95.     '╨╜╨░╤ç╨░╨╗╤î╨╜╨╛╨╣ ╨╛╤ü╨╕.
  96.     dCurrAngle = (2 * 3.14159265 * iSumPercent )/100 
  97.     dSliceAngle = (2 * 3.14159265 * iNewPercent )/100 
  98.     x2 = r * cos(dCurrAngle) + x1
  99.     y2 = r * sin(dCurrAngle) + y1
  100.     x3 = r * cos(dCurrAngle + dSliceAngle) + x1
  101.     y3 = r * sin(dCurrAngle + dSliceAngle) + y1
  102.     x4 = r * cos(dCurrAngle + dSliceAngle/2) + x1
  103.     y4 = r * sin(dCurrAngle + dSliceAngle/2) + y1
  104.  
  105.     '╨ƒ╨╛╨╗╤â╤ç╨░╨╡╨╝ ╤ü╤ü╤ï╨╗╨║╤â ╨╜╨░ ╨░╨║╤é╨╕╨▓╨╜╤â╤Ä ╤ü╤é╤Ç╨░╨╜╨╕╤å╤â ╤é╨╡╨║╤â╤ë╨╡╨│╨╛ ╨┤╨╛╨║╤â╨╝╨╡╨╜╤é╨░. ╨ÿ╤ü╨┐╨╛╨╗╤î╨╖╤â╨╡╨╝ ╨│╨╗╨╛╨▒╨░╨╗╤î╨╜╤â╤Ä ╨┐╨╡╤Ç╨╡╨╝╨╡╨╜╨╜╤â╤Ä thisDoc
  106.     '╨┤╨╗╤Å ╨┤╨╛╤ü╤é╤â╨┐╨░ ╨║ ╨╛╨▒╤è╨╡╨║╤é╤â Document.
  107.     Set active_Page = thisDoc.ActivePage()
  108.     '╨í╨╛╨╖╨┤╨░╨╡╨╝ ╤ê╤ì╨╣╨┐, ╨╕╨╖╨╛╨▒╤Ç╨░╨╢╨░╤Ä╤ë╨╕╨╣ Slice.
  109.     '╨ƒ╨╛╤ü╤é╤Ç╨╛╨╡╨╜╨╕╨╡ ╤ê╤ì╨╣╨┐╨░ ╨┐╤Ç╨╛╨╕╤ü╤à╨╛╨┤╨╕╤é ╨╝╨╡╨╢╨┤╤â ╨┤╨▓╤â╨╝╤Å ╤ä╤â╨╜╨║╤å╨╕╤Å╨╝╨╕, ╨╛╨▒╤è╤Å╨▓╨╗╤Å╤Ä╤ë╨╕╨╝╨╕ ╨╛ ╨╜╨░╤ç╨░╨╗╨╡ 
  110.     '╤ü╨╛╨╖╨┤╨░╨╜╨╕╤Å ╤ê╤ì╨╣╨┐╨░ (╨╝╨╡╤é╨╛╨┤ BeginShape ╨╛╨▒╤è╨╡╨║╤é╨░ Page) ╨╕ ╨╛ ╨╖╨░╨▓╨╡╤Ç╤ê╨╡╨╜╨╕╨╕ ╨╡╨│╨╛ ╤ü╨╛╨╖╨┤╨░╨╜╨╕╤Å
  111.     '(╨╝╨╡╤é╨╛╨┤ EndShape ╨╛╨▒╤è╨╡╨║╤é╨░ Page). ╨í╤ü╤ï╨╗╨║╨░ ╨╜╨░ ╤ü╤é╤Ç╨╛╤Å╤ë╨╕╨╣╤ü╤Å ╤ê╤ì╨╣╨┐ ╨┐╤Ç╨╕╤ü╨▓╨░╨╕╨▓╨░╨╡╤é╤ü╤Å 
  112.     '╨┐╨╡╤Ç╨╡╨╝╨╡╨╜╨╜╨╛╨╣ new_Slice.
  113.     Set new_Slice = active_Page.BeginShape()
  114.     '╨ú╤ü╤é╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝ ╤å╨▓╨╡╤é ╨╛╨▒╤è╨╡╨║╤é╨░, ╨╕╤ü╨┐╨╛╨╗╤î╨╖╤â╤Å RGB-╨┐╤Ç╨╡╨┤╤ü╤é╨░╨▓╨╗╨╡╨╜╨╕╨╡ ╤å╨▓╨╡╤é╨░.
  115.     new_Slice.FillColor.SetRGB(iR, iG, iB)
  116.     '╨ú╤ü╤é╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝ ╤é╨╡╨║╤ü╤é ╨╛╨▒╤è╨╡╨║╤é╨░. ╨ÿ╤ü╨┐╨╛╨╗╤î╨╖╤â╨╡╨╝ ╨╜╨╡╤Å╨▓╨╜╨╛╨╡ ╨┐╤Ç╨╡╨╛╨▒╤Ç╨░╨╖╨╛╨▓╨░╨╜╨╕╨╡ ╨┐╨╡╤Ç╨╡╨╝╨╡╨╜╨╜╨╛╨╣ 
  117.     'iNewPercent ╤é╨╕╨┐╨░ Integer ╨║ ╤é╨╕╨┐╤â String.
  118.     new_Slice.Text = iNewPercent & "%"
  119.     '╨ù╨░╨┤╨░╨╡╨╝ ╨│╨╗╨╛╨▒╨░╨╗╤î╨╜╤ï╨╡ ╨║╨╛╨╛╤Ç╨┤╨╕╨╜╨░╤é╤ï ╨╜╨░╤ç╨░╨╗╨░ Slice ╨╛╤é╨╜╨╛╤ü╨╕╤é╨╡╨╗╤î╨╜╨╛ ╤ü╤é╤Ç╨░╨╜╨╕╤å╤ï.
  120.     active_Page.MoveTo(x1,y1)
  121.     '╨ÿ╨╖ ╤é╨╡╨║╤â╤ë╨╡╨╣ ╤é╨╛╤ç╨║╨╕, ╨╖╨░╨┤╨░╨╜╨╜╨╛╨╣ ╨▓╤ï╨╖╨╛╨▓╨╛╨╝ MoveTo, ╤ü╤é╤Ç╨╛╨╕╨╝ ╨╛╤é╤Ç╨╡╨╖╨╛╨║ ╨▓ ╤é╨╛╤ç╨║╤â c 
  122.     '╨║╨╛╨╛╤Ç╨┤╨╕╨╜╨░╤é╨░╨╝╨╕ (x2,y2). 
  123.     active_Page.LineTo(x2,y2)
  124.     '╨ÿ╨╖ ╤é╨╡╨║╤â╤ë╨╡╨╣ ╤é╨╛╤ç╨║╨╕, ╨╖╨░╨┤╨░╨╜╨╜╨╛╨╣ ╨▓╤ï╨╖╨╛╨▓╨╛╨╝ LineTo, ╤ü╤é╤Ç╨╛╨╕╨╝ ╨┤╤â╨│╤â ╨╛╨║╤Ç╤â╨╢╨╜╨╛╤ü╤é╨╕ ╨▓ ╤é╨╛╤ç╨║╤â (x3,y3), 
  125.     '╨┐╤Ç╨╛╤à╨╛╨┤╤Å╤ë╤â╤Ä ╤ç╨╡╤Ç╨╡╨╖ (x4,y4).
  126.     active_Page.ArcTo(x3, y3, x4, y4)
  127.     '╨ù╨░╨▓╨╡╤Ç╤ê╨░╨╡╨╝ ╨┐╨╛╤ü╤é╤Ç╨╛╨╡╨╜╨╕╤Å ╤ü╨╡╨║╤é╨╛╤Ç╨░: ╨┐╤Ç╨╛╨▓╨╛╨┤╨╕╨╝ ╨╛╤é╤Ç╨╡╨╖╨╛╨║ ╨▓ ╤å╨╡╨╜╤é╤Ç ╨┤╨╕╨░╨│╤Ç╨░╨╝╨╝╤ï.
  128.     active_Page.LineTo(x1, y1)
  129.     '╨ù╨░╨▓╨╡╤Ç╤ê╨╡╨╜╨╕╨╡ ╨┐╨╛╤ü╤é╤Ç╨╛╨╡╨╜╨╕╤Å Shape.
  130.     active_Page.EndShape()    
  131. End Sub