自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1152)
  • 资源 (25)
  • 收藏
  • 关注

原创 C# MVVM教程

本文介绍了使用MVVM模式开发一个简单的手速测试游戏。通过WPF框架和CommunityToolkit.Mvvm包实现Model-View-ViewModel三层架构:Model层定义左右手得分计数器;View层设计UI界面,包含得分显示和左右手按钮;ViewModel层通过ObservableProperty和RelayCommand实现数据绑定和命令响应。游戏逻辑为:左手按A键、右手按L键进行比拼,获胜方得分并禁用对方按钮,只有获胜方再次按键后才会解锁对方按钮。这种架构实现了界面与业务逻辑的分离,展示了

2026-01-08 09:30:00 964

原创 Git解决代码冲突

本文介绍了使用Git进行团队协作开发时的冲突处理流程。首先演示了如何初始化Git仓库、创建裸库并开启Git服务供局域网共享。随后重点讲解了两种常见冲突场景:空文件冲突和内容冲突。在空文件冲突中,Git会自动合并不同版本;而在内容冲突时,需要手动修改冲突标记并提交合并结果。文章详细展示了冲突解决的具体操作步骤,包括拉取更新、识别冲突标记、手动修改文件以及最终提交合并结果的过程。最后验证了冲突解决后代码同步的正确性,为团队协作开发提供了实用的Git操作指南。

2026-01-07 09:15:00 638

原创 C#并行任务详解

本文介绍了.NET中的并行工具Parallel,主要包括Parallel.For、Parallel.ForEach和Parallel.Invoke三种并行方法。通过示例代码展示了这些方法如何显著提升计算性能,其中Parallel.For相比普通for循环耗时减少88%。文章详细讲解了Parallel.ForEach处理带返回值情况的使用方法,以及通过ParallelOptions参数控制并行任务的核心数、取消标记等配置。测试结果表明,在多核CPU环境下,Parallel工具能够有效利用硬件资源,大幅提升计算

2026-01-07 09:00:00 1651

原创 Git局域网协作教程

本文介绍了Git中clone命令的基本使用以及如何搭建远程仓库实现多人协作。主要内容包括:1)通过clone命令克隆本地和远程仓库;2)创建裸仓库作为远程共享仓库;3)使用git daemon开启Git协议服务,允许局域网内其他主机克隆和推送;4)演示了远程主机修改内容并推送,本地拉取更新的完整协作流程。文章详细说明了每个步骤的具体命令和参数含义,为Git初学者提供了清晰的远程协作实践指导。

2026-01-06 09:30:00 1395

原创 C#异步读写文件

摘要:微软提供异步文件读写方法(以Async结尾)避免界面卡顿。测试发现二进制写入时Windows会缓存到内存造成"秒存"假象,而文本写入需编码耗时较长。异步读取与写入逻辑类似,但会返回内容。需注意异步方法不会自动另开线程,同步操作仍会阻塞线程。不同文件类型的异步操作性能差异显著,二进制最快,文本处理较慢。

2026-01-06 09:00:00 609

原创 C#异步编程详解

本文介绍了C#异步编程的核心概念和实践方法。首先通过简单示例展示async/await的基本用法,说明异步方法不会阻塞主线程的特点。然后探讨多任务并发处理的两种典型场景:使用WhenAll等待所有任务完成和使用WhenAny响应首个完成的任务。最后介绍了如何通过CancellationTokenSource实现任务取消机制,避免无意义的计算资源消耗。文章通过密码破译的示例代码,生动演示了异步编程中任务调度和取消的具体实现方式,为开发者提供了实用的异步编程解决方案。

2026-01-05 14:30:00 868

原创 Git初步教程

Git版本控制工具通过本地数据目录、工作目录和暂存区域管理文件的三种状态:已提交、已修改和已暂存。演示了从初始化仓库、添加文件、提交修改到版本回退的全过程,包括使用git add、commit、diff、reset和reflog等核心命令。重点展示了如何跟踪文件变更、查看版本差异以及回退到历史版本,体现了Git记录完整更新历史的核心功能。通过简单的hello.txt文件修改案例,直观呈现了Git版本控制的基本工作流程和状态转换机制。

2026-01-05 14:00:00 741

原创 Rust实战教程:做一个UDP聊天软件

本文介绍了一个基于Rust和egui的UDP通信测试工具实现。该项目通过UdpSocket实现网络通信,使用crossbeam-channel进行线程间数据传输,解决了GUI线程与UDP监听线程的通信问题。程序界面包含收发窗口和控制面板,支持配置本地/目标IP和端口。关键点包括:通过Arc原子变量实现线程安全的状态控制,使用通道将接收数据传递给GUI线程,以及通过request_repaint方法实现界面刷新。文章详细解析了监听线程的实现逻辑,包括数据传输、线程同步和终止机制,为开发复杂GUI网络应用提供了

2025-11-06 08:40:11 1472

原创 Unity入门教程:从零开始做一个立方体

本文介绍了Unity基础开发流程:1)通过Unity Hub安装编辑器,创建3D项目;2)演示场景搭建步骤,包括添加立方体、调整平面和相机参数;3)详细说明材质创建与着色方法;4)重点讲解C#脚本编程实现相机控制功能,使立方体可响应鼠标交互。教程涵盖从环境配置到代码实现的完整开发链路,包含关键操作截图和代码解析,帮助初学者快速掌握Unity基本操作和简单交互开发。最终实现了一个可通过鼠标右键旋转、滚轮缩放的3D立方体场景。

2025-11-05 08:39:27 1075

原创 Rust图形界面教程:egui基础组件的使用

本文介绍了使用Rust的egui框架开发图形界面的基本方法,重点讲解了常用UI组件的实现。文章通过一个包含标签、文本输入框、下拉框、滑块和按钮的示例程序,详细说明了布局组件(如CentralPanel、horizontal)和功能组件(如label、button、Slider等)的使用方式。特别指出egui中组件通过Ui结构体函数或Widget结构体两种形式调用,并比较了各自的语法差异。示例代码展示了如何创建并配置这些组件来实现基本的用户交互功能。

2025-11-05 08:30:00 2285 3

原创 从零开始,做一个Rust图形界面程序

本文介绍了如何使用Rust和egui框架创建一个简单的GUI应用。主要内容包括:通过cargo创建项目并添加eframe依赖;实现一个最小化的egui程序,展示"Hello World"窗口;解析程序结构,重点讲解run_native函数的作用及其参数配置;说明自定义应用结构体MinApp的实现,包括Default和eframe::App两个trait的绑定。文章还详细解释了update方法的工作原理以及如何通过回调函数添加UI组件。该教程为初学者提供了创建基本GUI应用的完整示例和关键

2025-11-04 08:33:44 1026 1

原创 Rust图形界面egui初步教程

本文介绍了使用Rust语言图形界面库egui的入门方法。作者推荐通过克隆egui仓库并运行示例程序来学习。文章详细讲解了环境配置、依赖项设置以及示例程序的结构分析。示例代码展示了一个简单的GUI应用,包含文本框、滑动条和按钮等基本组件。文章还提供了解决网络问题的换源方法,并分析了生成的可执行文件大小。通过这个入门教程,读者可以快速了解Rust在图形界面开发中的基本应用。

2025-11-04 08:30:48 1023

原创 Rust结构体详解

本文介绍了Rust语言中的三种复合数据类型:元组结构体、结构体和枚举类。元组结构体是带名字的元组,通过struct声明并实例化;标准结构体可定义成员和方法,使用impl绑定成员方法;枚举类结合match语法可实现模式匹配,文中展示了包含不同成员变量的枚举定义与使用。这三种数据类型共同构成了Rust强大的类型系统基础,配合println!的调试输出,能有效提升代码可读性和开发效率。

2025-11-03 08:54:51 606

原创 终于把Rust所有权讲明白了

摘要:Rust通过所有权机制实现内存管理,所有权规则包括:每个值有唯一所有者、所有者离开作用域值被释放。文章分析了变量作用域、移动与克隆的区别,指出基本类型自动克隆而复杂类型需显式克隆。函数传参时所有权规则同样适用,引用机制允许共享访问但默认不可变,可变引用需mut关键字且限制单一可变引用。Rust的严格所有权系统在编译期确保内存安全,虽显死板但有效防止内存问题。这种静态垃圾回收机制是Rust的核心特性之一。

2025-11-03 08:43:03 862

原创 火星在哪?skyfield计算观星方位

本文介绍了如何使用Skyfield库计算火星相对于地球的位置坐标,并将其转换为观测者视角下的地平坐标系。文章首先通过ICRS国际天球参考系给出火星在2025年11月11日的三维坐标,然后演示如何将这些坐标转换为北京观测点的方位角和高度角。关键步骤包括使用apparent()函数考虑各种天文效应,以及通过altaz()函数实现坐标转换。最后,作者还剖析了底层计算过程,展示了如何通过旋转矩阵将ICRS坐标转换为地面观测坐标。全文通过代码示例和分步解释,完整呈现了从理论坐标到实际观测的转换流程。

2025-10-29 09:15:00 1323

原创 Rust超快无痛入门教程

本文介绍了Rust编程语言的基础知识,包括安装配置、基本语法和数据结构。主要内容为: 安装与配置:通过官网下载安装Rust,遇到网络问题时可通过国内镜像源解决。安装完成后测试版本并运行"Hello World"示例程序。 变量与数据类型:Rust使用let声明变量,默认不可变,需要mut关键字使其可变。提供整型、浮点型、布尔型等多种数据类型,强调强类型特性。 控制结构:包含条件语句、函数定义、块表达式等,展示递归阶乘函数的实现。特别说明Rust中表达式可作为返回值的使用方式。 数据结构:

2025-10-29 08:58:47 1048

原创 用Python计算每天的日出日落时间

本文介绍了利用Skyfield天文计算库分析日出日落时间与晨昏蒙影的方法。通过almanac模块的sunrise_sunset函数,可快速计算指定地点的日出日落时间,并以北京为例展示了2015年的计算结果。同时阐述了晨昏蒙影的三个等级(民用、航海、天文)及其对应的太阳高度范围,使用dark_twilight_day函数可绘制不同晨昏时段的时间分布图。文中提供了完整的Python代码实现,包括时间计算、离散事件检测和可视化绘图过程,展现了Skyfield库在天文现象计算中的强大功能。

2025-10-28 09:00:00 1219

原创 WireShark抓包http,解密https

本文介绍了HTTP协议的基本概念和抓包分析技术。主要内容包括:1)HTTP协议的发展历程,从HTTP1.x到HTTP3的演变,重点说明加密机制的变化;2)HTTP抓包方法,演示如何通过Wireshark捕获明文HTTP流量;3)HTTPS解密技术,详细讲解配置浏览器导出TLS密钥实现HTTPS流量解密的过程;4)HTTP状态码分类,列举了1XX-5XX共5大类状态码及其具体含义。文章通过实际案例展示了网络协议分析的技术细节,为理解HTTP/HTTPS协议工作原理提供了实用参考。

2025-10-28 08:45:00 3424 1

原创 Welford 算法及其Python实现

Welford算法是一种递推计算均值和标准差的方法,适用于实时数据处理。该算法通过当前均值、方差和新数据点计算新的统计量。推导表明,新方差Mₙ可以表示为Mₙ₋₁加上修正项(n-1)/n*(xₙ-μₙ₋₁)²。Python实现验证了该算法与numpy计算结果一致,浮点误差在10⁻¹⁷量级。算法优势在于无需存储历史数据,适用于流式数据场景。

2025-10-27 09:00:00 1246

原创 DHCP协议详解及其WireShark抓包测试

本文分析了DHCP协议的工作原理和数据包格式。通过Wireshark抓取DHCP报文,发现其包含5条报文,采用类似TCP的握手机制。详细解析了Discover报文的组成结构,包括以太网头、IP头、UDP头和DHCP数据部分。重点介绍了DHCP的TLV数据格式,列举了53、50、54等常见标签及其含义。最后阐述了DHCP建立连接的四个阶段:Discover广播发现、Offer提供IP、Request选择IP和Ack确认。文章为理解DHCP协议提供了详细的技术分析。

2025-10-27 08:45:00 1671

原创 skyfield入门:离线下载ed421并画一个太阳系

Skyfield是Python天文计算库,提供JPL行星历表、天体坐标转换等功能。安装后可通过load('de421.bsp')加载行星数据,需手动下载历表文件。利用Skyfield可轻松获取行星位置,示例代码演示了绘制太阳系行星位置图:计算当前时刻八大行星坐标,用Matplotlib展示平面分布图。核心功能包括行星数据加载和位置计算,仅需几行代码即可实现专业级天文计算与可视化。

2025-10-25 09:15:00 947

原创 TCP协议详解及其WireShark抓包测试

本文介绍了使用WireShark抓取TCP协议数据包的方法与分析过程。通过指定端口过滤TCP数据,结合网络调试助手发送测试数据"Hello World"。重点解析了TCP报文结构,包括以太网头、IPv4头和TCP头各字段含义,特别是控制位标志的作用。详细说明了TCP三次握手的实现机制:客户端发送SYN请求→服务器返回SYN+ACK→客户端确认ACK,最终建立可靠连接。文章通过实际抓包数据展示了三次握手过程中控制位的变化(0x8002→0x8012→0x5010),验证了TCP协议建立连接

2025-10-25 09:00:00 660

原创 老牌航天名校哈工大开发的航天仿真软件SpaceSim试用

摘要: SpaceSim是哈工大开发的开源航天仿真软件,支持轨道动力学、卫星设计、任务规划等多领域仿真,已应用于多所高校教学与科研。本文以高中低轨道对比示例为基础,解析卫星轨道参数设置方法,并演示如何添加地球同步轨道(GEO)卫星。通过输入半长轴、离心率或近/远地点参数定义轨道,并利用升交点赤经公式实现GEO卫星定点(如哈尔滨经度126.63°)。仿真结果显示,GEO卫星在2D视图中保持静止,验证了参数设置的准确性。软件适用于航天工程教学与科研场景。 (字数:149)

2025-10-24 09:15:00 1942

原创 小白必看IP地址协议详解

本文介绍了IP地址的基本概念和作用。IP地址是网络设备的唯一标识,用于互联网连接。IPv4采用32位地址格式,共约4.3亿个地址;IPv6扩展为128位,极大增加了地址数量。为解决IPv4地址不足问题,可采用内外网分离方案,通过私有地址网段扩展容量。文章还说明了如何查看本地IP地址,包括通过控制面板和命令行方式,并解释了子网掩码的作用机制,即通过0和1的匹配逻辑来划分网络范围。这些知识可帮助解决大部分基础网络问题。

2025-10-24 08:30:00 1141

原创 用gpredict追踪卫星

gpredict是一款开源卫星轨道追踪软件,支持实时跟踪多颗卫星的位置和运动轨迹。软件界面包含世界地图、卫星详细信息及相对观测点的角度坐标。用户可自定义地面站位置,通过添加模块选择特定卫星组(如GPS卫星)进行追踪。软件支持在线更新TLE轨道数据,也可手动加载本地数据。卫星数据库以文本格式存储,包含编号、名称及TLE轨道参数。gpredict适用于业余无线电爱好者、卫星观测等领域,提供详细的卫星过境时间、信号参数等信息。

2025-10-23 09:30:00 1257

原创 UDP协议详解及WireShark抓包测试

本文介绍了UDP抓包实验及报文分析。通过WireShark捕获UDP数据包,分析了其报文结构,包括以太网头、IPv4头和UDP头。实验使用网络调试助手发送UDP数据,成功捕获"Hello World!"信息。文章还阐述了UDP的三种信息传递方式:单播、组播和广播,重点说明组播通过D类IP地址实现,并详细列出了组播地址的划分范围。本地广播地址为255.255.255.255,可向子网内所有主机发送数据。

2025-10-23 09:15:00 1316

原创 ICMP协议详解及其WireShark抓包分析

本文介绍了如何使用Wireshark抓取和分析ICMP报文。通过执行ping -4 bing.com命令,演示了ICMP协议的工作原理,包括请求/应答过程、TTL值含义等。重点解析了ICMP报文格式,详细说明其8字节协议头中的类型、错误码、校验和等字段。最后列举了ICMP数据包的主要类型及其错误代码含义,特别是Type=3(目标不可达)时的各种错误原因。文章结合命令行输出和Wireshark捕获数据,深入浅出地讲解了网络诊断中常用的ping命令底层实现机制。

2025-10-22 09:30:00 833

原创 STK卫星工具箱通信链路测试

本文介绍了卫星通信系统从单星到星座的完整仿真流程。首先设置上海地面站(仰角15°)和单颗卫星(二体轨道,7546km半长轴);然后建立通信链路,匹配收发器频率并验证连接。针对单星无法持续连接的问题,扩展为12颗卫星的Walker星座系统,通过多星协同确保地面站实时通信。最后通过动态仿真直观展示了星座系统的连接效果,验证了系统设计的可行性。整个流程涵盖了卫星通信系统仿真的关键环节,包括参数配置、链路测试和星座优化。

2025-10-22 09:00:00 1194

原创 STK卫星工具包初步教程:插入对象

本文介绍了STK软件中各类对象的插入方法,重点演示了Place(地点)对象的加载过程。通过默认文件、搜索功能和本地文件三种方式加载地点数据,并对比了不同方法的适用场景和特点。其中,默认加载方式调用安装路径下的.plc文件;搜索功能支持模糊匹配和精确筛选;本地文件则支持.plc和.shp格式,但不同格式文件的应用范围和加载方式存在差异。文章还提供了STK数据文件的结构解析和操作注意事项,帮助用户更灵活地使用地点数据功能。

2025-10-21 09:00:00 885

原创 DNS协议详解及其Wireshark抓包测试

本文介绍了DNS系统的基本概念和工作原理,包括域名解析过程、域名层级结构以及顶级域名分类。重点分析了DNS报文格式,通过Wireshark抓包实例展示了DNS请求和响应的数据包结构,详细解读了DNS报文头部各字段含义,包括事务ID、标志位、资源记录类型等。文章还列举了常见的DNS资源记录类型及其对应数值,并解释了标志字段中的各个参数含义,如查询/响应标识、操作码、授权应答等,帮助读者全面理解DNS协议的通信机制。

2025-10-21 08:45:00 965

原创 用Python写FPGA:MyHDL

MyHDL是一个Python到硬件描述语言(Verilog/VHDL)的转换工具,允许使用Python语法编写硬件模块。通过装饰器@block定义模块,@always描述触发条件,可以高效生成可综合的硬件代码。示例展示了一个简单的计数器模块,在时钟上升沿或复位下降沿触发,能自动转换为等效的Verilog和VHDL代码。该方法融合了Python的易用性和硬件设计的严谨性,显著提升了开发效率。转换后的代码结构清晰,可直接用于FPGA/ASIC设计流程。

2025-10-20 09:00:00 898

原创 ARP协议详解及其Wireshark抓包测试

摘要:ARP协议是连接IP地址与MAC地址的桥梁,通过Windows命令行arp -a可查看本机ARP缓存表。利用ping命令扫描局域网IP(1-254),配合ARP缓存查询可发现所有设备。Wireshark抓包测试显示,ARP请求报文包含硬件类型、协议类型、MAC/IP长度及地址信息。操作类型1表示请求,2表示应答,报文外层为以太网封装。测试时需临时修改IP以触发新ARP请求,完成后恢复网络设置。

2025-10-20 08:45:00 934

原创 Vitis HLS opencv环境搭建和测试

本文详细介绍了OpenCV在Vitis HLS环境下的安装配置和使用方法。主要内容包括:1)安装OpenCV、Mingw64和Cmake,配置环境变量;2)使用Cmake-gui生成OpenCV的编译配置文件,并通过命令行完成编译安装;3)在Vitis中配置Xilinx提供的Vision库示例项目,包括路径设置、编译参数调整和测试文件修改;4)运行Hough变换示例程序,获取图像处理结果。该流程完整展示了从环境搭建到实际应用的过程,为基于FPGA的计算机视觉开发提供了实践指导。

2025-08-29 08:24:29 1256

原创 FATFS磁盘操作函数

FATFS文件系统提供基础的驱动器操作功能,包括改变当前驱动器(f_chdrive)、初始化磁盘(disk_initialize)和获取磁盘状态(disk_status)。磁盘读写函数(disk_read/disk_write)支持读取/写入指定扇区数据,设备控制函数(disk_ioctl)可实现扇区大小、数量查询等功能。操作成功返回FR_OK,失败返回不同错误码,如无效驱动器号、未初始化状态或写保护等。这些函数均需指定物理驱动器号作为参数,确保对目标设备的精确控制。

2025-08-27 09:54:31 705

原创 CORDIC算法及其Python实现

文章摘要:本文介绍了伪旋转的概念及其数学表达,通过坐标变换推导出伪旋转与真实旋转的关系。在此基础上提出CORDIC算法,将旋转分解为一系列微小角度的伪旋转,仅需加减法和移位操作即可实现。文章详细给出了算法的数学推导过程,并提供了Python实现代码,通过迭代计算验证了算法在旋转角度计算中的有效性,最终结果与理论值吻合。该算法在数字信号处理等领域具有重要应用价值。

2025-08-27 09:00:00 1591

原创 tcl脚本语言列表排序详解

Tcl语言的lsort函数提供了多种列表排序方式。默认按ASCII码升序排列,但存在大小写敏感和数字排序问题。可通过-dictionary优化这些问题,或使用-nocase忽略大小写差异。此外支持降序(-decreasing)、去重(-unique)等调节开关。对于数值列表,提供-integer和-real选项。还能对子列表(-index)排序或自定义排序规则(-command)。如对{{3 apple}{1 carrot}}按子列表首元素排序结果为{{1 carrot}{3 apple}}。

2025-08-26 08:41:09 785

原创 BRAM加载coe文件

COE文件是一种用于存储系数的文件格式,常用于FPGA和DSP器件中。文章介绍了COE文件的基本结构,包括指定数据进制(二进制、十进制、十六进制)和初始化数据。通过Python示例生成高斯型信号数据并导出为COE文件,随后在Vivado中使用Block Memory Generator IP核加载该文件。通过ILA验证读取数据与Python生成结果一致,展示了COE文件在FPGA开发中的实际应用流程。

2025-08-26 08:21:17 944

原创 vitis高层次综合HLS入门教程

HLS即High level Synthesis,高层次综合,简单来说就是用C++写硬件代本文介绍了使用Vitis HLS进行高层次综合(HLS)开发的基本流程。主要内容包括:1)创建HLS项目并设置器件型号;2)编写C++硬件代码示例;3)综合过程及结果分析;4)插入指令优化设计;5)导出RTL及常见错误解决方案;6)在Vivado中验证IP核功能。通过一个简单的LED控制示例,展示了从C++代码到硬件实现的完整开发流程,包含时序控制、接口协议设置等关键技术点,为FPGA开发者提供了HLS入门的实用参考。

2025-08-25 10:54:11 1982

原创 如何读Vivdao中的电路图

本文以跑马灯为例,展示了Verilog HDL代码与硬件电路图的对应关系。通过分析两段触发电路(计数器递增和LED移位控制)对应的电路图,解释了加法器、比较器、多路选择器等逻辑器件的功能。文章还通过修改代码(将比较条件统一为等号),展示了不同实现方式对电路图的影响。最后指出在电路图中无法直接看出LED移位操作的具体效果,需要通过代码分析才能理解其工作原理。

2025-08-25 09:00:00 1150

原创 Vivado BRAM IP核详解

BRAM(Block RAM)是FPGA中的存储资源,可通过Vivado的Block Memory Generator(BMG)IP核配置。BMG支持独立模式和控制器模式,提供单端口、双端口和伪双端口RAM/ROM类型。配置选项包括内存类型(RAM/ROM)、时钟模式、ECC纠错、写使能、算法优化等。端口设置涵盖数据宽度、深度、操作模式(写优先/读优先/不变)以及复位选项。此外,支持.coe文件初始化存储空间,并针对仿真提供多种模型选项。BRAM配置需考虑位宽与深度的乘积不超过器件资源限制。

2025-08-22 09:26:04 2100

Rust+egui实现的UDP测试软件

《Rust实战教程:做一个UDP聊天软件》的源代码和可执行文件,博客地址:https://tinycool.blog.csdn.net/article/details/154474460 我们的目标是实现一个UDP测试软件,如下图所示 其左侧为收发窗口,下面是发送文本框,上方是接收文本框,前两行表示本机地址是【127.0.0.1:1233】,目标地址是【127.0.0.1:1234】,第三行表示本机发送一条Hello共5个字节给了【127.0.0.1:1234】;第四行表示从【127.0.0.1:1234】接收到了一个Hi。 右侧是控制窗口,最上方是本机IP、本机端口、目标IP、目标端口四个输入框,之后是一个用于开启和关闭服务的按钮,在下面是一个描述当前状态的标签,最下面是发送按钮。 从布局的角度来说,这个程序并不复杂,只涉及到按钮、文本框和标签,最多再加一个界面布局。但考虑到Udp收发功能,以及Rust语言对所有权的严格要求,我们不得不考虑下面几个问题: 1. UDP服务的监听线程与egui窗口独立,如何将其监听到的数据发送给窗口? 2. egui窗口如何发送指令以结束UDP的监听服务? 只要想通了这两个问题,那么对于更加复杂的GUI程序,也可以不在话下了。

2025-11-06

Python(Tkinter+matplotlib)实现光斑处理系统源代码

Python实现光斑处理系统源代码 通过将matplotlib嵌入到tkinter中,实现一个简单的光斑处理系统,除了matplotlib自带的功能按键之外,额外添加8个按钮,拟实现如下功能 1. 打开 打开一张新的光斑图片 2. 原图 显示当前的光斑图片 3. 切割 对当前光斑图片进行切割,以得到目标 4. 分布 显示当前光斑的分布情况 5. 拟合 对分布情况进行函数拟合,一般是高斯拟合y = a exp ⁡ ( − ( x − b ) 2 / c 2 ) ) 6. 批量 批量处理 7. 设置 一些全局性设置 8. 帮助 显示帮助文件 具体实现结果,可参考博客地址:https://tinycool.blog.csdn.net/article/details/135862828

2024-11-14

windows批处理数值计算实战

windows批处理数值计算实战,共提供8种功能: 1 2的n次方 2 二进制转换 3 最大公约数和最小公倍数 4 打印乘法表 5 打印幻方 6 查找勾股数 7 查找水仙花数 8 生成随机数 相关讲解的博客地址:https://tinycool.blog.csdn.net/article/details/132468913

2024-04-02

PyGame俄罗斯方块源代码

俄罗斯方块的逻辑很简单,就是几个方块组合在一起,然后下落,当其碰到四周的墙壁后便无法移动。若某行被方块所填满,那么就删除这一行,然后此行上面的所有方块下降一行。 为了将这个逻辑代码化,可以用布尔矩阵来表示具体的方块类型,比如长条形方块可用如下矩阵表示。里面包含两个矩阵,分别是横条和竖条,在实际实用中,通过按键可以旋转其状态。原理十分简单,但想要写出一个可以玩的游戏,却还需要注意一些细节问题。比如俄罗斯方块在碰到墙壁时的行为;旋转方块的方法。 博客地址:https://tinycool.blog.csdn.net/article/details/134902678

2023-12-09

go语言包管理测试代码

每个Go语言程序,都以package xxx开头,即申明本文件定义的所有函数、结构体,均从属于xxx包。当项目文件较多时,这种管理方式是所有编程语言的必然选择。相应地,通过import来调用包也是情理之中了,但低版本的Go语言很坑,并不支持import相对路径,故而本文对导入包的介绍,只在1.18以上的Go语言版本中有效。 博文地址:https://tinycool.blog.csdn.net/article/details/133766128

2023-10-11

C语言实现计算器源代码,支持四则混合运算以及三角函数

用纯C语言实现一个计算器,总共有三组源代码,循序渐进 1. 只支持加法和乘法的计算器 2. calc(丑陋的小程序)支持四则混合运算 3. 最终版,支持四则混合运算,以及一些自定义函数,比如绝对值 可执行文件a.exe是calc编译而成,用的是gcc编译器。 博客地址:https://tinycool.blog.csdn.net/article/details/111595416 部分运行结果 abs(3*5-4^2) abs(3*5-4^2)=1.000000 25-7+6*(4-5) 25-7+6*(4-5)=12.000000 sin(3.14) sin(3.14)=0.001593 sin(1.57)+cos(1.57) sin(1.57)+cos(1.57)=1.000796

2023-09-26

Python打造动态绘图系统

500行代码!非常适合新手入门的Python项目。 从0开始,基于tkinter和matplotlib,实现一个可以绘制动态三维图的绘图系统。支持图像风格定制,支持极坐标和三维坐标映射。 在readme文档中,记录了整个开发过程中的代码变化,保证基础薄弱的同学也能从头开始,按部就班地实现这个三维绘图软件。只要能够按照文档中所提示的那样,一步一个脚印地开发,那么可以在30个小时之内,从Python新手变成Python老手。 对应专栏地址:https://tinycool.blog.csdn.net/category_12435124.html 在专栏博客中,不仅记录了代码变化,而且对项目开发的每个阶段,均提供了完整的代码示例,更加适合学习。

2023-09-14

Python文件整理工具

我们的目的是做一个文件整理工具,前面两个输入框,用于输入源路径和目标就,下面的图片、视频、音乐表示在目标路径中创建的文件夹,后面的文件后缀,表示将这类文件移动到对应的文件夹中,加减号可以新增或删除文件夹。 两个文件分别是对话框按钮组件和文件整理组件的实现过程,文件整理组件中还定义了文件映射组件。在文件映射组件中,folder和ex分别是左右两个组件对应的可变文本,为了便于更新和调用,类中设计了两组、四对便携方法getFolder, setFolder和getEx和setEx。由于Folder中的内容就是文件夹本身,所以设置和读取方法仅仅是StringVar的二次封装,而ex中的内容则不然,需要对文本进行分割,并且实现字符串到列表的转换。 mvFile和setDst是组件的核心功能,分别用于设置目标路径并移动。之所以为目标文件夹设置安排了一个独立方法,是因为目标文件夹不一定存在,可能涉及到递归创建的过程。

2023-09-07

Tkinter+WordCloud做一个词云生成工具

Tkinter+WordCloud做一个词云生成工具。 需要安装模块wordcloud和jieba。 对应博客链接:https://tinycool.blog.csdn.net/article/details/132470515 自从做了热榜的词云之后,就越来越觉得词云的表达力真的很强,所以合计是不是可以为WordCloud做一个界面,来更加直观地操作。 既然以WordCloud为核心,那么界面的组件自然要和WordCloud的参数意义绑定,每个参数在界面中都对应一个提示组件,比如Lable,和一个输入组件,比如Entry。此外,这些参数都是可设的,那么在对应一个组件的同时,也应该对应一个StringVar。

2023-08-24

Blender绘制足球烯C60

通过简单的5个步骤,用Blender从头开始画一个足球烯C60 博客地址:https://tinycool.blog.csdn.net/article/details/131999824

2023-07-29

C语言实现二叉搜索树,可插入、删除搜索节点

C语言实现二叉搜索树,可插入、删除搜索节点,代码量只有100多行,注释详实,对萌新十分友好 博客地址:https://tinycool.blog.csdn.net/article/details/131423285

2023-06-27

WPF实战,实现一个txt阅读器,支持提取目录

博客地址: https://tinycool.blog.csdn.net/article/details/130967149 https://tinycool.blog.csdn.net/article/details/130969157 https://tinycool.blog.csdn.net/article/details/130977704

2023-06-01

用C#写的串口UDP转换工具

串口是设备和上位机通信的常用接口,UDP则是网络通信常用的通信协议。本代码实现的是通过将串口设备上传的指令,用UDP发送出去,或者将UDP传来的指令转发给串口设备,这个功能在工业领域非常常用。 开发过程写成了博客:https://tinycool.blog.csdn.net/article/details/129858681

2023-04-21

C# WinForm对话框示例程序

C# WinForm对话框示例程序,包括 - `MessageBox` 信息框 - `OpenFileDialog` 文件选择对话框 - `SaveFileDialog` 文件保存对话框 - `FolderBrowserDialog` 文件夹选择对话框 - `ColorDialog` 颜色对话框 - `FontDialog` 字体对话框 - `PrintDialog` 打印设置对话框 博客地址:https://tinycool.blog.csdn.net/article/details/130287086

2023-04-21

C#串口通信测试软件源代码

C#串口通信测试,内容简单,适合初学者 博客地址:https://tinycool.blog.csdn.net/article/details/129637911

2023-03-27

winform在窗口中拖动按钮

最简单的在窗口中拖动按钮的方法 博客地址:https://tinycool.blog.csdn.net/article/details/128832455

2023-02-01

Fourier级数和Taylor级数对原函数的逼近动画

通过Python+matplotlib,针对方波、三角波、锯齿波以及三角函数、指数函数,绘制了傅里叶级数和泰勒级数对原函数的逼近过程。 博客地址:https://tinycool.blog.csdn.net/article/details/120572487

2023-01-28

爱心源码-通过Python画一颗跳动的心

通过Python绘制一颗跳动的心 对应博客:用Python画一个跳动的心 博客地址:https://tinycool.blog.csdn.net/article/details/124855801

2022-12-11

纯Python实现遗传算法

GA的核心概念是种群,种群的关键是染色体,随着自然选择,染色体通过不断地复制、交叉、突变,完成一代又一代的进化,最终得到最优的结果。 具体编程时,染色体可用字符串或者二进制进行编码;自然选择,就是适应度函数;进化就是迭代。所以技术上的关键点,就是复制、交叉、突变等过程的函数实现。 博客:纯Python实现遗传算法 地址:https://tinycool.blog.csdn.net/article/details/128121243

2022-12-02

我的第一个WinForm程序,基础控件的使用

WinForm是一门非常经济实惠的技术,就是说,可以在短时间内学会,并迅速借此进行项目开发。尽管在很多方面不够现代,做出来的东西又Low又丑,但绝大多数的应用场景也不需要高端大气上档次。或许正是因为这种特点,WinForm在工控领域用得非常多,毕竟可以迅速实现某个小功能。 博客:WinForm,可能是Windows上手最快的图形框架了 地址:https://tinycool.blog.csdn.net/article/details/127932333

2022-11-24

鸡群算法之Python实现

通过Python实现鸡群算法,包括鸡类和鸡群类,提供了判据函数的接口。 博客【Python实现鸡群算法】 地址 https://tinycool.blog.csdn.net/article/details/127942327

2022-11-20

C#面向对象初步 源代码

C#面向对象学习的最短路径 博客【抽丝剥茧,C#面向对象快速上手】的源代码 地址:https://tinycool.blog.csdn.net/article/details/127911420

2022-11-17

超分辨网络SRCNN的Pytorch实现用到的T91数据集 搬运自网络,所以不需要积分

博客地址: 超分辨网络SRCNN的Pytorch实现 https://tinycool.blog.csdn.net/article/details/124581407#comments_23475484

2022-09-30

OpenGL 着色器初步,颜色变化的三角形

OpenGL 着色器初步,颜色变化的三角形 博客地址:https://tinycool.blog.csdn.net/article/details/124840050

2022-05-18

electron爬虫:定制CSDN App

electron爬虫:定制CSDN App 博客地址:https://tinycool.blog.csdn.net/article/details/124655279

2022-05-08

PCL环境配置以及测试案例,显示斯坦福兔子

PCL环境配置以及测试案例,显示斯坦福兔子 博客:PCL1.12安装+VS2019环境配置+测试程序:斯坦福兔子 博客地址:https://tinycool.blog.csdn.net/article/details/124599871

2022-05-05

electron做一个丐版浏览器,只有输入网址显示网页的功能,适合学习

electron做一个丐版浏览器,只有输入网址显示网页的功能,适合学习 博客:用electron做一个浏览器 博客地址:https://tinycool.blog.csdn.net/article/details/124565497

2022-05-04

Python动态绘图,包括椭圆、双曲线、抛物线、摆线、心形线等常见曲线的生成。

Python动态绘图,包括椭圆、双曲线、抛物线、摆线、心形线等常见曲线的生成。 博客:Python高级动态绘图系统:复杂曲线的轨迹演示 博客地址:https://tinycool.blog.csdn.net/article/details/124532129

2022-05-02

QT布局:实现动态布局

QT实现动态布局 博客:QT实现动态布局 地址:https://tinycool.blog.csdn.net/article/details/124525866

2022-05-01

从零开始,用electron做一个倒计时工具

从零开始,用electron做一个倒计时工具 博客:用electron做个五一倒计时 博客地址:https://tinycool.blog.csdn.net/article/details/124510990

2022-04-30

QT异步命令行,通过信号和槽进行响应

对应博客:QT异步命令行:信号和槽在QProcess中的应用 博文地址:https://blog.csdn.net/m0_37816922/article/details/124465039

2022-04-28

【C#】WPF 3D 选中并挪动几何体

通过快捷键新建几何体,通过鼠标选中并拖动几何体。 博客地址:https://tinycool.blog.csdn.net/article/details/124443939 博客标题:【C#】做一个超级乞丐版的我的世界(WPF 3D 选中并挪动几何体)

2022-04-27

Python动态绘制圆锥曲线,并封装成类

基于Python中的animation,封装成圆锥曲线的绘制类,根据圆锥曲线的参数方程,来快速绘制圆锥曲线的生成过程。 博客地址:https://tinycool.blog.csdn.net/article/details/124419074

2022-04-26

【QT】通过QProcess实现一个命令行

通过QT中的QProcess实现一个命令行,粗略版本 博客地址:https://tinycool.blog.csdn.net/article/details/124397664

2022-04-25

C++ QT调用外部程序(QProcess)

QT通过QProcess调用外部程序 博客地址:https://tinycool.blog.csdn.net/article/details/124359078

2022-04-23

WPF 3D 光线颜色(给地球点颜色看看)

WPF 3D 光线颜色调节 博客地址:https://tinycool.blog.csdn.net/article/details/124356858

2022-04-23

QT文件读写实战代码C++

QT文件读写实战的源代码 博客地址:https://tinycool.blog.csdn.net/article/details/124336122

2022-04-22

QT多线程实战源代码(QThread)

QT多线程实战源码,用到线程间通信等内容。 博客地址:https://tinycool.blog.csdn.net/article/details/124298084

2022-04-20

用C#搓一个地球(WPF 3D)

基于WPF的三维地球制作,用到三角面拼接、贴图、光效以及timer使之转动。 博客地址:https://tinycool.blog.csdn.net/article/details/124281244

2022-04-20

二次元老婆们的画廊WPF3D@VisualStudio

通过WPF的3D功能,制作一个照片墙 里面包含工程所需的所有文件 博客地址https://tinycool.blog.csdn.net/article/details/124235174

2022-04-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除