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; } }
相关资源:GDI 编写的指针时钟屏保