- 博客(947)
- 资源 (13)
- 收藏
- 关注
原创 python海龟绘图之计算夹角towards()
towards()函数用于计算海龟当前位置到目标点(坐标、向量或其他海龟)的连线与海龟坐标系0°方向之间的夹角(逆时针测量)。该函数有三种调用方式:坐标形式(x,y)、向量形式(Vec2D)和其他海龟对象形式。主要应用包括:控制海龟转向目标点、计算海龟间相对方向、判断目标方位(左右侧)。实现原理是基于当前位置与目标点连线相对0°方向的逆时针角度,返回值为浮点型。典型使用场景如t.setheading(t.towards(x,y))可实现海龟自动转向目标位置。
2026-04-15 18:24:14
335
原创 python中海龟绘图之海龟印章
本文介绍了Python turtle库中stamp()、clearstamp()和clearstamps()三个印章操作函数的使用方法。stamp()可在当前位置创建印章并返回ID;clearstamp()通过ID删除指定印章;clearstamps()可批量删除印章,参数控制删除范围(全部/前n个/后n个)。这些函数适用于需要标记位置但不画线、重复绘制相同图案、制作动画等场景,通过示例代码展示了三种函数的实际应用效果,包括创建印章、定时删除和批量删除等操作。
2026-04-15 15:56:41
177
原创 python中海龟绘图之实心圆dot()
本文介绍了turtle库中dot()函数的用法,用于绘制实心圆。主要内容包括:1)无参数时默认绘制黑色圆,直径为pensize+4与2*pensize中的较大值;2)可单独指定直径或颜色,颜色支持字符串格式、三原色值或RGB元组;3)支持同时指定直径和颜色参数;4)介绍了颜色模式的切换方法(浮点数/整数模式)和十六进制颜色表示法。通过多个示例代码展示了不同参数组合的使用方式,帮助掌握dot()函数绘制实心圆的各种应用场景。
2026-04-14 11:26:14
284
原创 Python海龟绘图之远程传输teleport()
本文介绍了turtle模块中teleport()函数的基本用法和拓展应用。该函数可将海龟移动到指定坐标(x,y)且不画线、不改变朝向。通过示例代码演示了其与goto()的区别。重点解析了fill_gap参数的作用:当为False时(默认值),传送会结束当前填充并在新位置重新开始;为True时则保持填充状态,但传送点间不画线。文章通过图示对比了两种参数设置下不同的填充效果,帮助理解teleport()在图形绘制中的特殊用途。该函数适用于需要"无痕"移动海龟的场景。
2026-04-14 11:23:46
337
原创 GESP编程等级认证C++4级13-结构体2-2
本文介绍了C++结构体的定义和使用方法。主要内容包括:1)结构体的两种定义方式:按成员顺序定义和指定成员名定义;2)结构体成员的赋值方法:点运算符和箭头运算符(指针情况);3)结构体成员的访问方式;4)通过真题解析演示了结构体的实际应用,包括参数传递方式和嵌套结构体的使用。文章还提供了相关学习资源的链接,帮助读者深入理解结构体的概念和使用技巧。
2026-03-27 13:22:21
31
原创 GESP编程等级认证C++4级12-结构体2-1
C++结构体是一种自定义复合数据类型,使用struct关键字定义,可将不同类型的数据封装成整体。定义格式为:struct 结构体名{成员列表};注意末尾分号不可省略。结构体变量有三种声明方式:先定义后声明、定义同时声明、匿名结构体声明(只能声明一次)。结构体通过将相关数据(如姓名、年龄等)组合在一起,提高了数据的组织性和可操作性。
2026-03-27 13:19:46
150
原创 GESP编程等级认证C++4级11-全局变量与局部变量2-2
本文介绍了C++中作用域运算符::的使用方法及其在真题中的应用。通过三个真题案例,展示了如何区分全局变量和局部变量:使用::访问全局变量,未加::则访问局部变量。案例涉及变量作用域、函数传参方式以及变量自增操作,说明在不同作用域下同名变量的处理方式。真题解析部分包含选择题和判断题,详细解释了代码执行过程和变量取值原理,帮助理解作用域运算符的实际应用场景。
2026-03-26 21:16:44
25
原创 GESP编程等级认证C++4级10-全局变量与局部变量2-1
本文介绍了全局变量与局部变量的区别:全局变量定义在函数外部,作用域覆盖整个程序,默认初始值为0;局部变量定义在函数或代码块内部,作用域受限,未初始化时值为随机。重点讨论了变量遮蔽现象:当局部变量与全局变量同名时,程序优先使用最近作用域内的局部变量。通过示例说明了不同作用域下同名变量的遮蔽规则,展示了变量作用域对程序输出的影响。
2026-03-26 20:58:10
176
原创 GESP编程等级认证C++4级9-函数参数的传参方式2-2
本文介绍了函数参数的引用传递机制。引用是变量的别名,使用"&"符号表示,与变量共享内存地址。将函数参数设为引用类型时,形参即为实参的别名,函数内对形参的修改会直接影响实参。相比指针传递,引用传递语法更简洁且更安全,不会出现空指针问题。文中通过代码示例和调试结果展示了引用传递的特性,并解析了相关考题,指出引用传递会修改实参且引用一旦绑定不可更改。真题解析部分进一步验证了引用传递与值传递、指针传递的区别。
2026-03-20 11:22:44
191
原创 GESP编程等级认证C++4级8-函数参数的传参方式2-1
C++函数传参方式主要有三种:值传递、指针传递和引用传递。值传递将实参的值复制给形参,形参和实参是独立变量,修改形参不影响实参(如int类型)。指针传递通过地址操作,形参和实参指向同一内存,修改形参会影响实参(如int*类型)。引用传递形参是实参的别名,直接操作原变量。值传递适合小数据,指针和引用传递适合大数据或需要修改实参的情况。不同传参方式影响函数内外的变量关系。
2026-03-20 11:20:31
115
原创 GESP编程等级认证C++4级7-二维数组与指针2-2
本文介绍了二维数组遍历与指针操作的相关知识点。主要内容包括:1)通过嵌套循环遍历二维数组元素的方法;2)指针在二维数组中的应用,如获取数组元素地址和值;3)结合真题解析了指针运算(如*(p+2)+1)、地址偏移计算等常见考点。文中通过具体代码示例和真题分析,说明了如何正确理解和使用二维数组指针,包括指针解引用、元素地址计算等关键操作。这些知识点是理解和操作二维数组的核心内容。
2026-03-18 13:01:15
18
原创 GESP编程等级认证C++4级6-二维数组与指针2-1
本文探讨了二维数组元素的地址获取与计算方法。通过示例代码展示了如何获取二维数组的行地址(如arr[0]和arr[1])及其整型元素地址(如&arr[0][0])。分析指出,行指针的差值反映行下标差(如p2-p1=1),而整型元素指针的差值则反映元素间隔数(如p2-p1=3)。文中还强调了数组名即首行地址的等价关系(arr≡&arr[0]),并通过内存地址值验证了指针运算结果。这些操作揭示了二维数组在内存中的连续存储特性。
2026-03-18 12:59:45
148
原创 GESP编程等级认证C++4级5-一维数组与指针2-2
本文摘要:文章介绍了通过地址遍历数组元素的方法,重点分析了指针运算与数组访问的关系。主要内容包括:1)使用sizeof计算数组元素个数并通过指针遍历数组;2)解析指针差即为数组元素下标差;3)说明数组名作为指针常量的特性;4)指出指针自增运算后指向下一个元素的地址而非元素值。文中还结合2025年相关考题,对数组指针运算的常见考点进行了分析说明。(149字)
2026-03-17 15:20:02
27
原创 GESP编程等级认证C++4级4-一维数组与指针2-1
本文介绍了C++中获取数组元素地址的三种方法:1.使用地址符号(&)获取首元素地址;2.直接使用数组名作为首元素地址;3.通过数组名偏移获取其他元素地址。实验证明数组元素在内存中是连续存储的,相邻int类型元素地址相差4字节。值得注意的是,指针相减得到的是元素下标差而非实际地址差值。这些方法为理解数组内存布局和指针运算提供了实践基础。
2026-03-17 15:18:21
154
原创 GESP编程等级认证C++4级3-解引用与函数指针参数2-2
本文介绍了指针作为函数参数的用法。当函数参数为指针时,形参接收的是实参的地址,通过解引用操作可以直接修改实参的值。文中通过具体代码示例展示了指针参数的内存变化过程,并解析了2025年12月相关考题,包括指针定义、解引用操作及指针参数的应用场景。考题分析表明,正确理解指针操作对变量值的改变是解题关键。
2026-03-12 11:13:59
19
原创 GESP编程等级认证C++4级2-解引用与函数指针参数2-1
本文介绍了C++中指针解引用和函数参数传递的相关知识。首先说明指针通过解引用符号"*"可以访问或修改其指向变量的值,并通过内存地址变化展示了变量值的修改过程。其次解释了C++函数参数的"传值调用"机制,通过形参和实参的内存地址对比,说明函数内部对形参的修改不会影响实参的值。文章通过具体代码示例和内存地址分析,直观地展示了指针操作和函数参数传递的特性。
2026-03-12 11:11:31
115
原创 GESP编程等级认证C++4级1-内存地址与指针
本文介绍了计算机内存的基本概念及其在C++中的应用。内存可类比为公寓楼,其中内存单元对应房间,地址对应房号,数据对应房间物品。文章详细讲解了C++基本数据类型的内存占用情况,并通过sizeof()函数获取其大小。同时演示了如何通过&符号获取变量地址,以及如何使用指针保存变量地址。文中配有多幅图示,直观展示了变量在内存中的存储方式和地址获取过程,帮助读者理解内存操作的基本原理。
2026-03-09 10:22:50
31
原创 《pygame中Sprite类实现多帧动画》注-通过单张序列帧显示动画2-2
本文介绍了使用Pygame实现僵尸动画的方法。首先通过subsurface()方法从帧序列大图中截取单帧图片,定义矩形范围确定每帧位置。然后实现僵尸精灵位置更新逻辑:根据运动方向(左/右)调整帧坐标,当到达边界时改变方向并重新计算帧序列。最后创建MySprite类实例,包含帧控制、方向切换功能,通过精灵组管理动画显示。文章提供了完整代码,包括初始化参数、帧速率控制以及主循环结构,实现了一个左右移动的僵尸动画效果。
2025-11-10 09:34:41
423
原创 《pygame中Sprite类实现多帧动画》注-通过单张序列帧显示动画2-1
摘要: 本文介绍了使用pygame Sprite类实现多帧动画的方法,重点处理同一图片包含多组序列帧的情况。通过定义MySprite类,将包含8个方向动作的僵尸序列帧图片(每个方向一行)分解为单独帧。文章详细说明了类属性的设计,包括帧大小、方向、当前帧等参数,以及通过时间差更新帧序列的方法。特别阐述了如何根据帧号计算行列位置来获取特定方向的动画帧,并给出了确定帧位置的坐标计算原理和代码实现。该方法主要应用于向左和向右两个方向的僵尸动画显示。
2025-11-10 09:32:15
1097
原创 《pygame中Sprite类实现多帧动画》注-通过多张序列帧显示动画2-2
摘要:本文介绍了在pygame中使用Sprite类实现多帧动画的方法,重点讲解了update()方法的实现细节。该方法通过current_time参数控制帧切换速度(默认30毫秒),实现精灵图片更新(MAX_FRAME控制帧循环)和位置移动(ZOMBIE_SPEED控制移动速度)。同时说明了如何通过pygame.time.get_ticks()获取游戏时间驱动动画,以及如何通过精灵组统一更新所有精灵。文中提供了完整代码示例,展示了从初始化精灵到游戏循环处理的全过程,其中FPS设为60确保流畅动画效果。
2025-11-04 09:05:15
909
原创 《pygame中Sprite类实现多帧动画》注-通过多张序列帧显示动画2-1
摘要:本文介绍了利用多张序列帧实现动画效果的技术方法。首先需要将"BucketheadZombie_数字.png"格式的帧图片名存入列表,然后通过修改MySprite类的__init__()方法实现动画控制。其中关键是通过current_time、last_time等时间属性控制帧切换时机,当current_time与last_time差值超过预设阈值speed时,切换至下一帧并更新时间记录,从而实现流畅的动画播放效果。文中还提供了相关代码示例和示意图帮助理解动画实现原理。
2025-11-04 09:01:45
653
原创 《pygame中Sprite类实现多帧动画》注-显示静态图片2-2
本文介绍了Pygame中精灵组(Group)的使用方法。精灵组是用于批量管理多个精灵(Sprite)的容器类,可统一处理精灵的更新、绘制和碰撞检测等操作。文章详细说明了创建精灵组、添加精灵到组中、更新精灵组状态以及绘制精灵组内容的具体实现方法,并指出相关方法的调用机制(如update()会调用子类重写方法,而draw()始终调用父类方法)。最后提供了一个完整示例代码,展示了如何使用精灵组来管理单个静态精灵,包括初始化、主循环和退出处理等完整流程。
2025-10-31 17:21:50
654
原创 《pygame中Sprite类实现多帧动画》注-显示静态图片2-1
本文介绍了Pygame中精灵(Sprite)类的使用方法。精灵类封装了图像属性、位置属性和行为方法,便于管理游戏对象。主要内容包括:1.精灵类的基本方法和属性(init()、update()、draw()方法及image、rect属性);2.如何自定义精灵子类MySprite,重点关注初始化方法和图像位置设置;3.创建精灵实例的具体实现。文章还提供了相关Python类和Pygame图片操作的参考链接,并指出显示静态图片时只需重写__init__()方法即可。
2025-10-31 17:19:23
1027
原创 GESP C++等级认证三级29-extern用法2-2
摘要:本文介绍了C++中声明、定义和赋值的区别,并强调extern变量只能定义一次。声明告知变量类型但无初始值,定义分配内存并初始化,赋值则是给已定义变量赋值。文中通过实例说明重复定义extern变量会报错。最后解析了2025年GESP考试真题,指出跨文件访问变量需使用extern修饰,否则无法实现。判断题答案依据注意事项给出,正确答案为×。(149字)
2025-10-28 09:11:44
71
原创 GESP C++等级认证三级28-extern用法2-1
C++中的extern关键字用于声明外部定义的变量或函数,实现多文件间共享全局变量和函数。通过示例项目展示:在hou.cpp中定义变量i和函数f(),在main.cpp中用extern声明后即可使用和修改。运行结果显示,main.cpp能成功访问和修改hou.cpp中的变量,并调用其函数,证明了extern在模块化编程中的关键作用。这种机制有效支持了多文件项目中的代码共享与协作开发。
2025-10-28 09:10:49
162
原创 GESP 等级认证C++三级27-变量作用域2-2
本文介绍了全局作用域变量的特点及用法:1)全局变量在所有函数外部定义,从定义位置到程序结束均可使用;2)通过示例代码演示了全局变量在函数内、代码块及main()函数中的调用方式;3)解析了同名变量在不同作用域下的优先级问题,局部变量会覆盖全局变量;4)结合真题案例,分析了局部作用域与块作用域的区别,指出在块作用域外访问的是局部变量而非块变量。文章通过具体代码和运行效果,系统阐述了变量作用域的相关概念及应用场景。
2025-10-27 10:26:41
56
原创 GESP 等级认证C++三级26-变量作用域2-1
变量作用域指变量在代码中的有效访问范围,主要包括局部作用域、块作用域和全局作用域三种。局部作用域变量在函数内定义,仅在该函数内有效;块作用域变量在{}代码块内定义,仅在该块内有效,且块内可访问外部同名变量但会屏蔽外部变量。当同名的块内外变量同时存在时,块内访问的是块内变量,块外访问的是外部变量。未在有效作用域内访问变量会导致"未定义标识符"错误。
2025-10-27 10:24:38
155
原创 GESP等级认证C++三级25-算法入门3-3
2025年6月两道编程题解析:第一题考查枚举算法,重点分析提取三位数十位数的代码实现,正确答案为B选项;第二题考察模拟算法,通过分析小球下落反弹的循环过程,指出height变量代表最大高度,对应选项B。两道题目均聚焦基础算法应用,需要准确理解变量含义和代码逻辑。
2025-10-17 09:12:46
135
原创 GESP等级认证C++三级24-算法入门3-2
本文介绍了C++中的两种基本算法:枚举算法和模拟算法。枚举算法通过列举所有可能解来寻找答案,包含状态、范围和约束条件三要素,适合解决如寻找水仙花数等问题。模拟算法则通过直接模拟问题描述的过程来求解,如数字反转等操作。两种算法都具有直观易懂、逻辑清晰的特点,适用于不同场景的问题求解,是编程中常用的基础算法方法。
2025-10-17 09:11:44
206
原创 GESP等级认证C++三级23-算法入门3-1
摘要:算法是解决问题的有限步骤指令序列,具有有穷性、确定性和可行性。可通过三种方式描述:1)自然语言描述,用日常语言清晰表达步骤;2)流程图描述,用标准图形符号直观展示逻辑流程;3)伪代码描述,混合编程语言关键字和自然语言快速勾勒代码框架。这三种方法分别适用于不同场景,共同帮助实现从问题到编程的转化。
2025-10-16 09:11:00
443
原创 GESP等级认证C++三级22-位运算7-7
本文解析了2025年6月的4道真题:1)按位或运算规则答案为B;2)按位异或交换变量值选A;3)浮点数右移1位不适用快速除以2的幂规则,答案为×;4)整数x可通过位运算判断奇偶性,答案为√。每道题均引用了相关运算规则作为解题依据。(95字)
2025-10-16 09:08:47
207
原创 GESP等级认证C++三级21-位运算7-6
【摘要】右移操作(>>)是二进制位运算,分为逻辑右移(无符号数补0)和算术右移(有符号数按符号位补0/1)。该运算可用于快速除以2的幂(如右移n位等价于除以2ⁿ),以及权限管理中的权限提取。示例代码演示了有符号数右移时的补位规则,并展示了利用右移实现权限提取的实用场景,其中负数右移时保持符号位特性(如-1右移仍为-1)。运行效果图验证了运算结果与预期一致。
2025-10-15 11:22:27
307
原创 GESP等级认证C++三级20-位运算7-5
本文介绍了左移运算的原理与应用。左移操作符"<<"将二进制数所有位左移指定位数,右侧补0,超出部分丢弃。文中通过代码示例展示了左移实现方法,并强调负整数左移是未定义行为,建议使用unsigned类型。主要应用包括:1)快速计算2的n次幂(如左移n位相当于乘以2ⁿ);2)标志位操作,简化二进制值定义。同时指出计算时需确保有效数值位不超出范围,否则会导致错误。
2025-10-15 11:20:44
197
原创 GESP等级认证C++三级19-位运算7-4
本文介绍了按位取反运算的原理与应用。按位取反运算符"~"会对操作数的每一位进行逻辑取反,32位整型中前导0也会被取反为1。在应用中,通过按位取反加1可求负整数的补码,如-5的补码计算;还可用于移除用户权限,配合按位与运算能删除特定权限位。文中通过具体代码示例展示了这两种应用场景的实现方法和运算过程,包括权限修改后保留执行权限的情况。
2025-10-14 13:42:46
83
原创 GESP等级认证C++三级18-位运算7-3
本文介绍了按位异或运算的规则、代码实现及其应用。按位异或(运算符"^")对两个二进制数的每位进行独立操作,相同为0,不同为1。代码实现部分展示了变量交换和数据加密解密的应用场景:通过三次异或运算可交换变量值;而数据加密则是将原始信息与密钥异或,解密时再次异或即可还原。这两种应用都利用了异或运算的可逆特性,特别是加密解密功能直观展示了异或运算在信息安全中的实用价值。
2025-10-14 13:40:55
203
原创 GESP等级认证C++三级17-位运算5-2
本文介绍了按位或运算的规则与应用。按位或是二元操作,对二进制数逐位执行逻辑"或"运算:两位均为0时结果为0,否则为1。其特点是:任何数与1运算结果为1,与0运算保持原值,与自身运算不变。代码实现使用"|"运算符,常用于权限管理、标志位设置等场景。例如,可用二进制位表示不同权限,通过按位或合并多个权限,再配合按位与检查特定权限。文中通过用户权限设置实例展示了如何用按位或赋予读、执行、复制权限(结果为0b1101)。
2025-10-13 20:38:16
66
原创 GESP等级认证C++三级16-位运算5-1
摘要:位运算是对整数的二进制形式进行按位操作,包括与、或、异或、取反、左移和右移6种运算。位运算直接对应CPU指令,效率高于算术运算。按位与运算规则为两数对应位均为1时结果为1,否则为0。其应用包括:判断奇偶性(与1运算)、检查特定位值(与特定位掩码运算)、清除特定位(与0运算)。位运算是计算机底层高效操作,能实现多种数值处理功能。
2025-10-13 20:36:42
186
原创 GESP C++等级认证三级15-原码反码补码2-2
本文介绍了补码的计算原理及其应用。补码既能实现正负整数相加,又能提高计算效率:正数补码与原码相同,负数补码为原码加1(或通过寻找首个1后取反左边数值位)。8位补码取值范围为-128~127,解决了原码/反码中±0的问题。真题解析部分通过具体题目演示了原码、反码和补码的转换方法,如补码10111010对应原码11000101(-69)。文中还涉及数值溢出处理和8位二进制数的表示范围等关键概念。
2025-10-12 21:22:10
452
原创 GESP C++等级认证三级14-原码反码补码2-1
摘要:计算机中整数存储采用原码、反码和补码三种方式。原码最高位表示符号,数值位直接表示绝对值,但正负数相加会出现错误。反码通过数值位取反解决加减问题,但仍存在+0/-0冗余。8位原码/反码的取值范围均为-127~127(含±0)。补码则能统一零的表示并提高运算效率,是现代计算机普遍采用的整数表示方法。(148字)
2025-10-12 21:20:47
350
原创 GESP C++等级认证三级13-操作string2-2
本文介绍了C++中string类的常用操作方法:1. 使用replace()函数实现字符串替换,需指定起始位置、替换长度和新字符串;2. 通过substr()函数截取子串,可设置起始位置和截取长度;3. 用length()或size()获取字符串长度;4. 解析了多个真题,涉及字符串比较、反向查找和截取操作的注意事项,如string对象可直接用"=="比较,而字符数组需用strcmp()函数。
2025-10-10 20:49:55
470
基于IOAPIC重定位的 键盘监听技术及防御
2017-03-27
Windows文件系统过滤驱动开发教程(第二版)
2017-04-23
基于VS2015套接字完成端口模型源代码
2018-07-04
ddkwizard_setup_v1.2.0a及ddkward.cmd
2016-10-23
基于对话框程序的注册码快捷键粘贴功能的实现
2017-04-23
VS2008编译驱动程序的配置方法
2016-10-23
Windows7下VS2008维护模式破解工具.rar
2019-05-31
filespy源代码
2016-09-25
DirectDraw中文手册
2017-01-31
Windows Graphics Programming Win32 Gdi And Directdraw.chm
2017-01-31
黑客调试技术解密pdf
2016-09-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅