GetInfo.Ru – Компьютерная библиотека
Последние поступления
Как выбрать систему управления базы данных
Базы данных03/09/14
Этапы загрузки UNIX (в схеме)
Unix27/03/12
Gatewall Antispam: тотальный контроль электронной почты
Спам21/04/11
Мастер-класс: создаем Интернет-магазин (Часть 1)
Обзоры ПО20/04/11
CorelDRAW Graphics Suite X5: Что нового?
Обзоры ПО20/07/10
Добавить статью
Самые читаемые материалы
Программирование на ASP. Введение или первый урок.(15992)
Отображение картинки из БД напрямую - создание своего HttpHandler(13358)
Использование шаблонов дизайна в ASP .NET(12495)
Кеширование ASP.NET страниц(11704)
Пакетная компиляция в ASP.NET(11455)
Всего статей: 793Всего авторов: 364Подразделов: 47Добавлено за сутки: 0
Статьи  СТАТЬИ Форум  ФОРУМ Рейтинг  РЕЙТИНГ Поиск  ПОИСК Контакты  КОНТАКТЫ
» Главная » ASP » ASP.NET: пример построения круговой диаграммы

ASP.NET: пример построения круговой диаграммы


Юрий Христофоров
jyura@mail.ru
http://www.activex.net.ru/

Ниже будет показано, как можно в ASP.NET приложении, используя графические методы GDI+, нарисовать круговую диаграмму. Это может быть полезно, например, для наглядного представления данных.
Файл pie.aspx (написан на VB.NET):

<%@ Page Language="VB" ContentType="image/jpeg" %>

<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Imaging" %>
<%@ Import Namespace="System.Drawing.Drawing2D" %>

<%
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()
%>
Результат работы скрипта:
Результат работы скрипта

Данный ASP.NET-скрипт можно взять здесь: aspnetpie.zip

 
23.03.2003
Версия для печати Версия для печати Запомнить ссылку Запомнить ссылку
Ваша оценка:  1   2   3   4   5     

 О проектеПерепечаткаАвторамПартнерыО нас пишут
Наверх
©2003—2007. GETINFO.RU. ВСЕ ПРАВА ЗАЩИЩЕНЫ.