·首页 ·asp ·.net ·php ·JSP ·CGI ·数据库 ·网页设计 ·网管专栏 ·XML ·工具软件 ·办公软件 ·操作系统 ·程序设计 ·LINUX 
  当前位置: 普克>>计算机教程>>.net>>Windows开发>>Rotation Sample
flash视频教学

photoshop专题

asp.net专题

office专题

Rotation Sample


Windows开发 发表时间:2006-4-8 字体:  返回
Rotation Sample
Submitted ByUser LevelDate of Submission

John O扗onnell

Intermediate

04/24/2001


Download Exe: RotationSampleJ.zip 6 KB
Description of the Article
After reading Mike Golds article on transforms I thought I would get things moving a bit!
Overriding the OnPaint method and using the Timer class allows us to create a simple animation where we rotate a line around a central point.
Anyone want to create an asteroids clone in C#? J
  
Source Code:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Drawing.Drawing2D;
namespace Rotationb2
{
      /// <summary>
      /// Summary description for Form1.
      /// </summary>
      public class Form1 : System.Windows.Forms.Form
      {
            private System.Windows.Forms.Timer timer1;
            private System.ComponentModel.IContainer components;
            public float f=0;
            public Form1()
            {
                  //
                  // Required for Windows Form Designer support
                  //
                  InitializeComponent();
                  //
                  // TODO: Add any constructor code after InitializeComponent
call
                //
            }
            /// <summary>
            /// Clean up any resources being used.
            /// </summary>
            protected override void Dispose( bool disposing )
            {
                  if( disposing )
                  {
                        if (components != null)
                        {
                              components.Dispose();
                        }
                  }
                  base.Dispose( disposing );
            }
  
            #region Windows Form Designer generated code
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                  this.components = new System.ComponentModel.Container();
                  this.timer1 = new System.Windows.Forms.Timer(this.components);
                  //
                  // timer1
                  //
                  this.timer1.Enabled = true;
                  this.timer1.Interval = 50;
                  this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
                  //
                  // Form1
                  //
                  this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
                  this.ClientSize = new System.Drawing.Size(240, 221);
                  this.Name = "Form1";
                  this.Text = "Rotationb2";
             }
            #endregion
             /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main ()
            {
                  Application.Run(new Form1());
            }

            protected override void OnPaint(PaintEventArgs e)
            {
                  e.Graphics.DrawEllipse(Pens.Red,0,0,220,220);
                  GraphicsPath gp = new GraphicsPath();
                  gp.AddLine(30,30,110,110);
                  Matrix RotationTransform = new Matrix(1,0, 0,1,1,1);  //
rotation matrix
                  PointF TheRotationPoint = new PointF(110.0f, 110.0f);  //
rotation point
                  RotationTransform.RotateAt(f, TheRotationPoint);
                  gp.Transform(RotationTransform);
                  e.Graphics.DrawPath(Pens.Blue, gp);
                  f=f+10;
                  if (f==360)
                  f=0;              
            }
             private void timer1_Tick(object sender, System.EventArgs e)
            {
                  //force client window to be refreshed
                  this.Refresh();
            }
      }
}


上一篇:c#中对mdi的操作,代码见内(child部分)
下一篇:Create Exe On Fly

普克创业投资网刊载此文不代表同意其说法或描述,仅为提供更多信息。
在百度中搜索Rotation Sample的相关内容]   [在狗狗中搜索Rotation Sample的相关内容]
Copyright @ 2006 PUPK.COM 普克创业投资网 版权所有
 建议使用1024*768以达到最好的浏览效果