C# 机构仿真实例

1、实现连杆带动滑块运动
一个连杆旋转带动另一个连杆,另一个连杆拖动滑块,点击“开始”按钮开始运动,再点击按钮,则停止运动。
在这里插入图片描述
2、实现程序

#region 机构仿真Image image = null;Timer timer= new Timer();int width = 0;int height = 0;int axisPoint = 10;double angle = 0;bool isRun = false;const int pole1 = 50;const int pole2 = 150;Point[] points = new Point[3];private void MechanismInitialize(){DrawMechanism(angle);timer.Interval= 100;timer.Tick += Timer_Tick;timer.Start();}private void Timer_Tick(object sender, EventArgs e){if (isRun){DrawMechanism(angle);angle += 10;}}private void button1_Click(object sender, EventArgs e){if (button1.Text.Equals("开始")){button1.Text = "结束";isRun = true;}else{button1.Text = "开始";isRun = false;}}private void DrawMechanism(double angle){width = this.pictureBox1.Width;height = this.pictureBox1.Height;image = new Bitmap(width, height);Graphics g = Graphics.FromImage(image);g.Clear(Color.White);int x = width / 8 * 3;int y = height / 2;Point p = new Point(x, y);points[0] = p;x = x + (int)(pole1 * Math.Cos(Math.PI / 180*angle));y = y + (int)(pole1 * Math.Sin(Math.PI / 180*angle));p = new Point(x, y);points[1] = p;int z = pole1 * (int)(Math.Sin(Math.PI / 180 * angle));x = (int)(width / 8 * 3 + pole1 * Math.Cos(Math.PI / 180 * angle) + Math.Sqrt(pole2 * pole2 - z * z));y = height / 2;p = new Point(x, y);points[2] = p;Pen pen = new Pen(Color.Black, 2);g.DrawEllipse(pen, points[0].X - axisPoint / 2, points[0].Y - axisPoint / 2, axisPoint, axisPoint);g.DrawLine(pen, points[0], points[1]);g.DrawEllipse(pen, points[1].X - axisPoint / 2, points[1].Y - axisPoint / 2, axisPoint, axisPoint);g.DrawLine(pen, points[1], points[2]);g.FillEllipse(new SolidBrush(Color.Blue), points[2].X - axisPoint, points[2].Y - axisPoint , axisPoint*2, axisPoint*2);g.Dispose();this.pictureBox1.Image = image;}#endregion

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/16159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一千题,No.0027(Phone Desktop)

描述 Little Rosie has a phone with a desktop (or launcher, as it is also called). The desktop can consist of several screens. Each screen is represented as a grid of size 53, i.e., five rows and three columns. There are x applications with an icon size o…

【网络安全】社会工程学攻击与防范

一、社会工程学概述 1、社会工程学的定义 通过利用人们的心理弱点、本能反应、好奇心、信任、贪婪等一些心理陷阱进行的诸如欺骗、伤害、信息盗取、利益谋取等对社会及人类带来危害的行为或方法。 当网络恶意攻击者无法通过纯粹的计算机技术达到目的时,高超的情商…

9.Redis之list类型

list相当于链表、数据表 1.list类型基本介绍 列表中的元素是有序的"有序"的含义,要根据上下文区分~~有的时候,谈到有序,指的是"升序","降序”有的时候,谈到的有序,指的是, 顺序很关键~~如果把元素位置颠倒,顺序调换.此时得到的新的 List 和之前的 Li…

js简单综合案例之简易ATM取款机、渲染表格案例、封装时间函数

这里写目录标题 简易ATM取款机要求代码实现 渲染表格案例要求代码实现 封装时间函数要求代码实现 简易ATM取款机 要求 1.弹出弹窗,让用户输入数字选择操作 2.初始值金额为100,计算每次操作后的剩余金额变化 3.一直弹出弹窗直到用户输入4,跳…

OpenCV SIFT特征描述子(GPU版本)

文章目录 一、简介二、测试过程三、实现效果参考资料一、简介 这里主要测试一下SIFT图像描述子的GPU版本。SIFT图像描述子,全称Scale-Invariant Feature Transform(尺度不变特征变换),是计算机视觉和图像处理领域中一种非常重要的局部特征描述子。它主要用于图像的特征点检…

新闻稿海外媒体投稿,除了美联社发稿(AP)和彭博社宣发(Bloomberg),还有哪些优质的国外媒体平台可以选择

发布高质量的新闻稿到海外媒体,除了美联社发稿(AP)和彭博社发稿(Bloomberg),还有许多其他优质的媒体平台可以选择。以下是一些受欢迎和高效的海外媒体发布平台: 路透社 (Reuters) 路透社是全球最…

Webpack Bundle Analyzer:深入分析与优化你的包

Webpack Bundle Analyzer是一个用于可视化的工具,它可以帮助你分析Webpack打包后的输出文件,查看哪些模块占用了最多的空间,从而进行优化。 2500G计算机入门到高级架构师开发资料超级大礼包免费送! 首先,你需要安装W…

IIC通信(STM32)

一、IIC概念 1、两根通信线:SCL(Serial Clock)、SDA(Serial Data) 同步,半双工 2、带数据应答 3、支持总线挂载多设备(一主多从、多主多从)一般使用一主多从。一主多从的…

【深度学习】paddlets,时序数据预测

文章目录 一、环境二、题目1三、题目2四、题目3五、函数参数 资料: https://paddlets.readthedocs.io/zh-cn/latest/source/api/paddlets.models.base.html#paddlets.models.base.BaseModel.recursive_predict https://aistudio.baidu.com/projectdetail/5866171?…

陪跑真正值钱的不是教程,是你遇到那个挡住你的问题时,身边有个靠谱的人

今天分享两个概念,一个是意识决定一切,一个是大道至简,做项目就是按部就班的遵循事情发展规律去做。 先说第一个概念,意识决定一切。我们说的凡事预则立不预则废,就是计划了去做就会有结果。 给你们一个表,…

Linux简单通过Minicom命令操作串口设备(linux串口操作命令)

Minicom是一个在Linux系统中广泛使用的串行通信程序。它类似于Windows下的超级终端,允许用户通过串口与外部硬件设备进行通信。Minicom不仅功能强大,而且完全免费,带有源代码,可以在大多数Unix系统下运行。 安装Minicom 在大多数Linux发行版中,Minicom可能没有预装。可以…

【前端】面试八股文——BFC

面试八股文——BFC 在前端开发的面试中,BFC(Block Formatting Context,块级格式化上下文)常常是一个高频出现的考点。它不仅考察应聘者对CSS布局的理解深度,也是面试官判断候选人解决实际问题能力的重要依据之一。因此…

python接口自动化测试中为什么用yaml文件进行用例管理而不是json文件

在Python接口自动化测试中,使用YAML文件进行用例管理而不是JSON文件,主要基于以下几个原因: 可读性:YAML文件使用缩进和冒号来表示层级结构,使得文件内容更加清晰易读。相比之下,JSON文件则使用大括号和中…

MySQL——索引与事务

目录 前言 一、索引 1.索引概述 (1)基本概念 (2)索引作用 (3)索引特点 (4)适用场景 2.索引的操作 (1)查看索引 (2)创建索引…

LeetCode399触发求值

题目描述 给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。另有一些以数组 queries 表示的问题,其中 que…

文科论文,使用AI写作时能够提供实证数据吗?

人工智能时代,为了撰写论文提供思路及高效,利用AI撰写论文已是常态,可撰写文科论文通常研究中都需要实证数据,而AI撰写论文时能够提供这样的数据吗? 一、什么是实证数据 实证数据是指从研究报告、财务报表、新闻报道…

计算机网络——TCP 协议的三次握手 / 四次挥手

简述 TCP / UDP 协议都是传输层的协议。 UDP 是面向无连接的协议,就是说发送端不在乎消息数据是否传输到接收端了,所以会出现数据丢失的情况,所以可靠性也不高。 TCP 是面向连接的、可靠的、基于字节流的传输层协议。所谓面向连接的&#…

Flink-cdc更好的流式数据集成工具

What’s Flink-cdc? Flink CDC 是基于Apache Flink的一种数据变更捕获技术,用于从数据源(如数据库)中捕获和处理数据的变更事件。CDC技术允许实时地捕获数据库中的增、删、改操作,将这些变更事件转化为流式数据,并能够…

Windows平台C#版RTSP转RTMP直播推送定制版

技术背景 前几年我们发布了C版的多路RTMP/RTSP转RTMP转发官方定制版。在秉承低延迟、灵活稳定、低资源占用的前提下,客户无需关注开发细节,只需图形化配置转发等各类参数,实现产品快速上线目的。 如监控类摄像机、NVR等,通过厂商…

【启程Golang之旅】深入解析函数的奥秘与技巧

欢迎来到Golang的世界!在当今快节奏的软件开发领域,选择一种高效、简洁的编程语言至关重要。而在这方面,Golang(又称Go)无疑是一个备受瞩目的选择。在本文中,带领您探索Golang的世界,一步步地了…