C#飞行仪表控件
前言
因为工作需要,要在c#下做飞行仪表显示,在网上找了很久,终于找到一个免费开源的飞行仪表控件,下载后发现原来的飞行仪表控件有一些缺陷,我按我的思路修改后,以开源的规则重新发布到网上。
原始代码来源 : https://blog.csdn.net/qq_42237381/article/details/85258478
原代码作者 : CSDN博主「渡之」
本控件主要代码来源于CSDN网站(见上), 由湖南创智艾泰克科技有限公司 王文庆做出完善和改造
遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
新的改变
原来的控件有一些缺陷,我做了以下修改:
- 原控件尺寸固定,这里改为了可缩放的;
- 原控件中地平仪的滚动角的三角指示是计算出来的,在角度改变时会变形,比较难看,这里改为直接画一个三角形,然后旋转的方式;
- 把常用功能【重合两张图片】、【旋转图片】、【截圆】做成了共通函数;
- 原代码注释太少,也不太清晰,给学习带来了一些不便,这里增加了注释;
- 优化了原代码的一些结构;
代码以及说明
本控件基于c#
首先准备背景图片
共通函数
先创建共通函数
/*************************************************************************
* 文件名称 :CommFunClass.cs
* 描述说明 :画图共通函数
*
* 创建信息 : create by on 2012-01-10
* 修订信息 : modify by (person) on (date) for (reason)
*
* 原始代码来源 : https://blog.csdn.net/qq_42237381/article/details/85258478
* 原代码作者 : CSDN博主「渡之」
* 本控件主要代码来源于CSDN网站(见上), 由湖南创智艾泰克科技有限公司 王文庆做出完善和改造
* 遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
**************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
namespace FlyMeter
{
/// <summary>
/// 控件共通函数
/// </summary>
public class CommFunClass
{
/// <summary>
/// 重合两张图片
/// </summary>
/// <param name="btm1">图片1</param>
/// <param name="btm2">图片2</param>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="w"></param>
/// <param name="h"></param>
/// <returns></returns>
public static Bitmap Overlap(Bitmap btm1, Bitmap btm2, int x, int y, int w, int h)
{
Bitmap image = new Bitmap(btm1);
Bitmap hi = new Bitmap(btm2);
Graphics g = Graphics.FromImage(hi);
g.DrawImage(image, new Rectangle(x, y, w, h));
g.Dispose();
return hi;
}
/// <summary>
/// 旋转一张图片
/// </summary>
/// <param name="image">img图片</param>
/// <param name="angle">旋转角</param>
/// <param name="width">图片宽</param>
/// <param name="height">图片高</param>
/// <returns></returns>
public static Bitmap RotateBmp(Image image, double angle, int width, int height)
{
Bitmap bitmp = new Bitmap(image);
return RotateBmp(bitmp, angle, width, height);
}
/// <summary>
/// 旋转一张图片
/// </summary>
/