`
sptgreen
  • 浏览: 44453 次
  • 性别: Icon_minigender_1
  • 来自: 荆门
社区版块
存档分类
最新评论

.net图像编程(GDI+)自制“小屏保”

阅读更多
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;
        }
    }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics