C#绘制三角形以及旋转
2016-04-15 09:46
639 查看
三角形类:
C# form:
使用C#自带的窗口程序
1.创建一个三角形类 使用了C#绘制方法
2.form中添加绘制方法,添加一个定时器
3.定时器中需要设置窗口无效 可以实时进行重绘 显示旋转
4.打开双缓存避免显示一闪一闪
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Drawing; namespace transform { class Triangle { PointF A, B, C; public Triangle(PointF a,PointF b,PointF c) { A = a; B = b; C = c; } /// <summary> /// 绘制三角形 /// </summary> /// <param name="g"></param> public void Draw(Graphics g) { Pen pen = new Pen(Color.Red,5); g.DrawLine(pen, A, B); g.DrawLine(pen, B, C); g.DrawLine(pen, C, A); } /// <summary> /// 三角形旋转 /// </summary> /// <param name="degrees"></param> public void Rotate(int degrees) { float angle = (float)(degrees / 360f * Math.PI); float newX = (float)(A.X * Math.Cos(angle) - A.Y * Math.Sin(angle)); float newY = (float)(A.X * Math.Sin(angle) + A.Y * Math.Cos(angle)); A.X = newX; A.Y = newY; newX = (float)(B.X * Math.Cos(angle) - B.Y * Math.Sin(angle)); newY = (float)(B.X * Math.Sin(angle) + B.Y * Math.Cos(angle)); B.X = newX; B.Y = newY; newX = (float)(C.X * Math.Cos(angle) - C.Y * Math.Sin(angle)); newY = (float)(C.X * Math.Sin(angle) + C.Y * Math.Cos(angle)); C.X = newX; C.Y = newY; } } }
C# form:
using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace transform { public partial class Form1 : Form { Triangle t; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { PointF A = new PointF(0, -200); PointF B = new PointF(200, 200); PointF C = new PointF(-200, 200); t = new Triangle(A, B, C); } private void Form1_Paint(object sender, PaintEventArgs e) { e.Graphics.TranslateTransform(300, 300); t.Draw(e.Graphics); } private void timer1_Tick(object sender, EventArgs e) { t.Rotate(1); this.Invalidate(); } } }
使用C#自带的窗口程序
1.创建一个三角形类 使用了C#绘制方法
2.form中添加绘制方法,添加一个定时器
3.定时器中需要设置窗口无效 可以实时进行重绘 显示旋转
4.打开双缓存避免显示一闪一闪
相关文章推荐
- C#实现字体旋转的方法
- 基于jQuery实现的旋转彩圈实例
- C++实现一维向量旋转算法
- 使用JavaScript实现旋转的彩圈特效
- jQuery平滑旋转幻灯片特效代码分享
- jquery实现可旋转可拖拽的文字效果代码
- jQuery+CSS3实现3D立方体旋转效果
- C#中图片旋转和翻转(RotateFlipType)用法分析
- Android Tween动画之RotateAnimation实现图片不停旋转效果实例介绍
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Javascript实现可旋转的圆圈实例代码
- Android编程实现3D滑动旋转效果的方法
- 基于Android 实现图片平移、缩放、旋转同时进行
- Android UI之ImageView实现图片旋转和缩放
- Android编程实现3D旋转效果实例
- Android实现屏幕旋转方法总结
- Android使用RotateImageView 旋转ImageView
- JS实现3D图片旋转展示效果代码
- 详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
- 实例讲解利用HTML5 Canvas API操作图形旋转的方法