Asp.Net 使用 GDI+ 绘制3D饼图入门篇源码

  • 来源: 互联网 作者: rocket   2008-03-24/14:15
  • topn3dpie.aspx
    ------------------
    <%@ Page language="c#" CodeBehind="topn3dpie.aspx.cs" AutoEventWireup="false" Inherits="Yeefly.topn3dpie" %>

    topn3dpie.aspx.cs
    -----------------
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Drawing.Imaging;
    using System.Drawing.Drawing2D;
    using System.IO;

    namespace Yeefly
    {
     /// <summary>
     /// Graph 的摘要说明。
     /// </summary>
     public class topn3dpie : System.Web.UI.Page
     {
      private void Page_Load(object sender, System.EventArgs e)
      {
       Response.ContentType = "image/jpeg";
       const int width = 300, height = 300;
       int x = 30, y = 50;

       int pieWidth = 120, pieHeight = 40, pieShadow = 15;
       int[] arrVote = {70,90,80,20,60,40};
       Random oRan = new Random();
     

       Bitmap objBitmap = new Bitmap(width, height);
       Graphics objGraphics = Graphics.FromImage(objBitmap);
       objGraphics.DrawRectangle(new Pen(Color.Black),0,0,width,height);
       objGraphics.FillRectangle(new SolidBrush(Color.White), 1, 1,width - 2, height - 2);
       SolidBrush objBrush = new SolidBrush(Color.Blue);
       objGraphics.SmoothingMode = SmoothingMode.AntiAlias;
     
       int iCurrentPos   = 0;

       Color[] arrColor = {Color.Red,Color.Red,Color.Red,Color.Red,Color.Red,Color.Red};

       for(int i = arrVote.Length - 1 ; i >= 0; i--)
       {
        arrColor = Color.FromArgb(oRan.Next(255), oRan.Next(255), oRan.Next(255));
       }

       for(int i = arrVote.Length - 1 ; i >= 0; i--)
       {
        objBrush.Color = arrColor;
        for(int iLoop2 = 0; iLoop2 < pieShadow; iLoop2++)
         objGraphics.FillPie(new HatchBrush(HatchStyle.Percent50,objBrush.Color),x, y + iLoop2, pieWidth, pieHeight, iCurrentPos, arrVote);
        iCurrentPos += arrVote;
       }

       iCurrentPos  = 0;
       for(int i = arrVote.Length - 1 ; i >= 0;i--)
       {
        objBrush.Color = arrColor;
        objGraphics.FillPie(objBrush,x, y, pieWidth, pieHeight, iCurrentPos, arrVote);
        iCurrentPos += arrVote;
       }

       objBitmap.Save(Response.OutputStream, ImageFormat.Jpeg);
       // clean up...
       objGraphics.Dispose();
       objBitmap.Dispose();
      }

      #region Web 窗体设计器生成的代码
      override protected void OnInit(EventArgs e)
      {
       //
       // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
       //
       InitializeComponent();
       base.OnInit(e);
      }
     
      /// <summary>
      /// 设计器支持所需的方法 - 不要使用代码编辑器修改
      /// 此方法的内容。
      /// </summary>
      private void InitializeComponent()
      {   
       this.Load += new System.EventHandler(this.Page_Load);
      }
      #endregion
     }
    }


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多