ASP.NET: приклад побудови кругової діаграми h2>
Христофоров Юрій p>
Нижче буде показано, як можна в ASP.NET додатку,
використовуючи графічні методи GDI +, намалювати кругову діаграму. Це може
бути корисно, наприклад, для наочного представлення даних. p>
Файл pie.aspx (написаний на VB.NET): p>
<% @
Page Language = "VB" ContentType = "image/jpeg"%> p>
<% @
Import Namespace = "System.Drawing"%> p>
<% @
Import Namespace = "System.Drawing.Imaging"%> p>
<% @
Import Namespace = "System.Drawing.Drawing2D"%> p>
<%
p>
Response.Clear ()
p>
Dim
height As Integer = 200 p>
Dim
width As Integer = 320 p>
Dim
x As Integer p>
Dim
i As Integer p>
Dim
start_angle As Integer p>
Dim
pie_size As Integer p>
Dim
sub_total As Integer p>
Dim
offset As Integer p>
Dim
diameter As Integer p>
Dim
arrData () As Integer = (75, 45, 19, 10, 55) 'значення p>
Dim
arrProcent (4) As Integer p>
Dim
total As Integer p>
Dim
arrColor () As Object = (Color.Salmon, Color.SeaGreen, Color.Gold,
Color.Maroon, Color.Orchid) p>
Dim
arrTitle () As String = ( "Пункт1", "Пункт2", "Пункт3", "Пункт4", "Пункт5") p>
Dim
rect As Object p>
sub_total
= 0 p>
start_angle
= 0 p>
offset
= 20 p>
diameter
= 170 p>
total
= 0 p>
Dim
bmp As New Bitmap (width, height, PixelFormat.Format32bppArgb) p>
Dim
g as Graphics = Graphics.FromImage (bmp) p>
Dim
fnt As New Font ( "Arial", 8) p>
Dim
sb As New SolidBrush (Color.Blue) p>
g.Clear (Color.White)
p>
g.SmoothingMode
= SmoothingMode.HighQuality p>
'сума значень у масиві p>
For
i = 0 To arrData.GetUpperBound (0) p>
total
= Total + arrData (i) p>
Next
p>
'відсотки p>
For
i = 0 To arrData.GetUpperBound (0) p>
arrProcent (i)
= Math.Round ((arrData (i)/total) * 100) p>
Next
p>
For
i = 0 To arrProcent.GetUpperBound (0) p>
sub_total
= Sub_total + arrProcent (i) p>
pie_size
= Sub_total * 360/100 - start_angle p>
g.FillPie (New
SolidBrush (arrColor (i)), offset, offset, diameter, diameter, start_angle,
pie_size) p>
start_angle
= Start_angle + pie_size p>
rect
= New Rectangle (offset + diameter + 10, offset + i * 20, 15, 15) p>
g.FillRectangle (New
SolidBrush (arrColor (i)), rect) p>
g.DrawString (arrTitle (i)
& "- [" & ArrProcent (i) & "%]", fnt, sb,
offset + diameter + 10 + 20, offset + i * 20) p>
Next
p>
bmp.Save (Response.OutputStream,
ImageFormat.Jpeg) p>
g.Dispose ()
p>
bmp.Dispose ()
p>
Response.End ()
p>
%> p>
Результат роботи скрипта: p>
p>
Список літератури h2>
Для підготовки даної роботи були використані
матеріали з сайту http://www.activex.net.ru/
p>