//以下代码添加到任一窗口下即可
        private int 旋转角度 = 0;
        private int 边长 = 10;
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            DrawSensor(e.Graphics, new Point(200, 200), 旋转角度, 边长);
        }
        /// <summary>
        /// 应力传感器代码,其他类型自己修改字符串值
        /// </summary>
        /// <param name="g"></param>
        /// <param name="p">三角形顶点坐标</param>
        /// <param name="sinta">旋转角度(顺时针正,逆时针负)</param>
        /// <param name="a">边长</param>
        private void DrawSensor(Graphics g,Point p,int sinta ,int a)
        {
            //设置线条平滑
            g.SmoothingMode = SmoothingMode.AntiAlias;
            Pen pen=new Pen(Color.Black);
            pen.StartCap=pen.EndCap=LineCap.Round;
            pen.LineJoin = LineJoin.Round;
            //应力传感器符号p
            PointF Pstr=new PointF((float)p.X+((float)a)/2f*(float)Math.Cos(Math.PI*((float)sinta )/180f)-5f,(float)p.Y+((float)a)/2f*(float)Math.Sin(Math.PI*((float)sinta )/180f)-5f);
            g.DrawString("p", new Font("楷体_GB2312", 10), new SolidBrush(Color.FromArgb(0xff, 0xff, 0, 0)),Pstr);
            //方框所在圆半径
            double r = ((double)a) / Math.Sqrt(2);
            //方框中心坐标
            Point Po = new Point(p.X + (int)((a * Math.Sqrt(3) / 2d + a / 2d) * Math.Cos(Math.PI * sinta / 180d)), p.Y + (int)((a * Math.Sqrt(3) / 2d + a / 2d) * Math.Sin(Math.PI * sinta / 180d)));
            //三角形顶点坐标
            Point Ao = p;
            Point Bo = new Point(Po.X + (int)(r * Math.Cos(Math.PI * (225d + sinta) / 180d)), Po.Y + (int)(r * Math.Sin(Math.PI * (225d + sinta) / 180d)));
            Point Co = new Point(Po.X + (int)(r * Math.Cos(Math.PI * (135d + sinta) / 180d)), Po.Y + (int)(r * Math.Sin(Math.PI * (135d + sinta) / 180d)));
            Point Do = new Point(Po.X + (int)(r * Math.Cos(Math.PI * (315d + sinta) / 180d)), Po.Y + (int)(r * Math.Sin(Math.PI * (315d + sinta) / 180d)));
            Point Eo = new Point(Po.X + (int)(r * Math.Cos(Math.PI * (45d + sinta) / 180d)), Po.Y + (int)(r * Math.Sin(Math.PI * (45d + sinta) / 180d)));
            Point[] lp = new Point[] { Ao,Bo,Do,Eo,Co };
            g.DrawPolygon(pen,lp );
            g.DrawLine(pen,Co,Bo);
            g.DrawLine(pen, Co, Do);
        }

//传感器符号标准请查阅 http://www.myltem.com/use%5CGBT14479-1993.PDF

C#绘制传感器代码的更多相关文章

  1. 传感器(2)常用api简介及列出当前设备支持的传感器代码

    Android SDK提供了Android sensor framework,可以用来访问当前Android设备内置的传感器. ASF提供了很多类和接口,可以帮助我们完成各种与传感器有关的任务. 例如 ...

  2. c++ 方框中绘制菜单代码

    绘制静态菜单 getch与getchar 接收光标控制 一.绘制静态菜单 编写函数void mainmenu( void) 二.getch与getchar getch()的作用是从键盘接收一个字 ...

  3. 纯CSS绘制mac代码

    1.效果图 2.代码 <!doctype html> <html lang="en"> <head> <meta charset=&quo ...

  4. iOS地图多个自定义大头针绘制核心代码

    首先需要自定义一个包含经纬度,title,subtitle的数据模型 #import <Foundation/Foundation.h> #import <MapKit/MapKit ...

  5. python蟒蛇绘制的代码以及目前还不知道怎么用的RGB颜色对照表

    #PythonDraw.py import turtle#引入海龟库 turtle.setup(650,350,200,200)#确定窗口大小,长650,高350,确定窗口位置,距离电脑左上角200, ...

  6. 双缓冲绘图和窗口控件的绘制——ATL ActiveX 窗口控件生成向导绘制代码OnDraw的一个错误 .

    双缓冲绘图和窗口控件的绘制 ---ATL ActiveX 窗口控件生成向导绘制代码OnDraw的一个错误 cheungmine 我们通常使用ATL COM组件,生成一个带窗口的ActiveX控件,然后 ...

  7. 在Arcscene绘制管线三维横断面(AE绘制三维点阵文字)

    根据数据信息动态生成三维管线及横断面表格.效果图如下: 在获取信息后,直接构造点阵进行文字绘制即可. 绘制IElement代码: /// <summary> /// 绘制三维文字 /// ...

  8. HTML5在canvas中绘制复杂形状附效果截图

    HTML5在canvas中绘制复杂形状附效果截图 一.绘制复杂形状或路径 在简单的矩形不能满足需求的情况下,绘图环境提供了如下方法来绘制复杂的形状或路径. beginPath() : 开始绘制一个新路 ...

  9. 自定义控件(View的绘制流程源码解析)

    参考声明:这里的一些流程图援引自http://a.codekk.com/detail/Android/lightSky/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7% ...

随机推荐

  1. 总结.NET 中什么时候用 Static

    静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数.当类中没有依赖对象标识的数据或行为时,就可以使用静态类.静态类成员是可独立于任何对象标识的数据和行为,即无论对象发生什么更改,这些数据和函 ...

  2. consul 安装

    1. linux 下consul 安装 首先查看机器信息: uname -a Linux centos-linux.shared 3.10.0-327.el7.x86_64 #1 SMP Thu No ...

  3. JSP的基本语法:

    JSP文件有5类元素:注释,模版,脚本,指令,行为 下面我就和大家分别唠唠,这5个玩意到底是啥玩意! 一.注释(我feel有三种): html注释:<!--……-->  显式注释,即客户端 ...

  4. MyBatis入门学习教程-优化MyBatis配置文件中的配置

    一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: 1 <?xml version=" ...

  5. 一个奇葩的SQL

    需求 建表脚本 CREATE TABLE [dbo].[A]( ) NOT NULL, ) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[B]( ) NOT N ...

  6. Hibernate5.2关联关系之单向多对一(二)

    Hibernate5.2之单向一对多(二) 一. 简介 在本篇博文中笔者会在上一篇博客的代码基础上进行修改,本篇文章将介绍单向的一对多. 二. hbm文件的方式 Customer.hbm.xml &l ...

  7. 【巩固】bootstrap笔记二

    这段主要记录如何给排版完的页面加一些动画效果,用到了的插件有: wow.min.js jquery.singlePageNav.min.js animate.css 将导航条上对应的菜单和页面上对应的 ...

  8. git学习1:git安装和配置

    Git是什么?世界上最先进的分布式版本控制系统,记录了一个文本文件的每次一修改信息,比如,一篇散文,从草稿到最终出版,经历过无数次修改,修改了标点符号形成一个版本,老师帮助修改形成一个版本,同学帮忙修 ...

  9. [HTML5]HTML表单(Forms)

    表单是HTML最主要的用户输入元素 用户和网页的交互动作有鼠标悬停.点击链接(或移动触摸)和页面滚动等,这些交互方式一般只是服务器单向信息输出. 有时候用户需要输入一些信息给服务器来完成双向交互,这类 ...

  10. Spark shuffle详细过程

    有许多场景下,我们需要进行跨服务器的数据整合,比如两个表之间,通过Id进行join操作,你必须确保所有具有相同id的数据整合到相同的块文件中.那么我们先说一下mapreduce的shuffle过程. ...