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;
}
}