程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> net圖像編程(GDI+)自制“小屏保”(附源碼)

net圖像編程(GDI+)自制“小屏保”(附源碼)

編輯:.NET實例教程

1:在圖像編程方面一般VC用的比較多,主要是考慮到了速度方面,但.Net在這方面似乎也毫不遜色,盡管受CLR(公共語言運行時)的影響,但以現在的硬件配置來看似乎也覺不出有什麼差異來;
 2:圖像編程只能在windows窗體中實現,在網站中不能實現,Windows程序時直接運行在操作系統上的,如果要以Html的形式讓
浏覽器解析實現這樣的效果,似乎有點難(不同於Javacript腳本),下面就讓我們來看看是怎麼以編程的方式來實現圖像的變換的;
   首先拖一個timer控件,右擊它的屬性我們會看到有個叫做“interval”的屬性,默認值是100它表示該控件事件每隔0.1秒
就會自動觸發執行一次;然後雙擊tric事件,在事件裡編寫程序:
   還有一點值得說的是timer控件的Enable值默認情況下是false,也就是說在不改變該值的情況下它是不會執行的,那麼我們在form頁面加載的時候將它設置為true;以觸發tick事件的執行;
    定義兩個Graphic 對象 g1,g2,用它來實現調用.Net類庫的繪圖函數;
    看源碼:



 public partial class Form_Hhrong : Form
    ......{
        public Form_Hhrong()
        ......{
            InitializeComponent();
            this.timer1.Enabled = true;
        }
        Graphics gline;
        Graphics gbizer;
        int i = 0;
        byte r = 70;/**//**//**////定義三原色的值
        byte g = 60;/**//**//**////通過後面方法中對三個值的改寫
        byte b = 30;/**//**//**////實現顏色的漸變
                    
        ///畫直線條:
        public void showline()
        ......{
            gline  = this.CreateGraphics();/**//**//**////this指代的是當前窗體
            Color cl = Color.FromArgb(r,g,b);/**//**//**////顏色的混合色值
            Pen pn = new Pen(cl);
            gline.DrawLine(pn,0,i,this.Width ,i);/**//**//**////在行方向上確定一條直線
                                             ///一名實現從上到下的變動
                                              ///以及顏色的漸變:
        }
        /**//**//**//// <summary>
        /// 畫貝塞爾曲線:
        /// </summary>
        int x ;
        int y;/**//**//**////定義點的變動幅度:
        public void showbizer()
        ......{
            gbizer = this.CreateGraphics();
            Color clr = Color.FromArgb(r, g, b);
            Pen pn = new Pen(clr);
            Point[] pp =......{ new Point(5+x,6+y),new Point (20+x,30+y),new Point (42+x,58+y),new Point (79+x,59+y)  };
            gbizer.DrawBezIEr(pn, pp[0],pp[1],pp[2],pp[3]);
        }
        private void timer1_Tick(object sender, EventArgs e)
        ......{
            showline();
            i++;     /**//**//**////讓線條向下移動一個點;
            r += 20;
            g += 10;
            b += 25;
            showbizer();
            x += 1;
            y += 1;
        }
    }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved