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