C#飞行仪表控件

本文介绍了如何在C#中改进并实现可缩放的飞行仪表控件,包括地平仪和磁罗盘的创建。作者修复了原有控件的尺寸固定问题,并优化了代码结构,提供了共通函数,如图片重合、旋转和截圆。此外,还增加了详细的注释,便于学习和使用。
摘要由CSDN通过智能技术生成

C#飞行仪表控件

前言

因为工作需要,要在c#下做飞行仪表显示,在网上找了很久,终于找到一个免费开源的飞行仪表控件,下载后发现原来的飞行仪表控件有一些缺陷,我按我的思路修改后,以开源的规则重新发布到网上。
原始代码来源 : https://blog.csdn.net/qq_42237381/article/details/85258478
原代码作者 : CSDN博主「渡之」
本控件主要代码来源于CSDN网站(见上), 由湖南创智艾泰克科技有限公司 王文庆做出完善和改造
遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

新的改变

原来的控件有一些缺陷,我做了以下修改:

  1. 原控件尺寸固定,这里改为了可缩放的;
  2. 原控件中地平仪的滚动角的三角指示是计算出来的,在角度改变时会变形,比较难看,这里改为直接画一个三角形,然后旋转的方式;
  3. 把常用功能【重合两张图片】、【旋转图片】、【截圆】做成了共通函数;
  4. 原代码注释太少,也不太清晰,给学习带来了一些不便,这里增加了注释;
  5. 优化了原代码的一些结构;

代码以及说明

本控件基于c#
首先准备背景图片
磁罗盘背景图片(500X500)
地平仪背景图片

共通函数

先创建共通函数

/*************************************************************************
 * 文件名称 :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>
        /
  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值