【教学类-59-】专注力视觉训练01(圆点百数图)

背景需求:
视觉训练的神奇效果,让你的宝贝成为焦点 - 小红书魔法视觉追踪-视觉训练—— 🔍视觉训练🔍 🔹想要提高宝宝的专注力,视觉训练是个绝佳方法! 🔹让宝宝仔细观察数字的路线,锻炼他们的视觉敏感度。 🔹在空白处填写数字,可根据线条的方向按顺序填写。 💡注意事项:引导宝宝一步一步进行,不要急于求成哦。 🔍视觉追踪能力🔍 🔹想让宝宝的视觉追踪能力更强?这里有个小技巧! 🔹让宝宝追踪图中数字的线条,提高他们的追踪能力。 🔹练习后,宝宝将变得更加敏锐,追踪能力也会有长足进步哦。 💡注意事项:适当调整难度,让宝宝充分体验追踪的乐趣。 🔍视觉线性空间感🔍 🔹想要培养宝宝的视觉线性空间感?这里有个妙招! 🔹让宝宝仔细观察数字的线条,理解线性空间感的变化。 🔹帮助宝宝感知线条的长度、方向和位置,提升他们的空间感知能力。 💡注意事项:让宝宝在放松愉快的状态下进行训练。 🎉快来试试这些训练方法吧!让宝宝的专注力更上一层楼!🎉 #儿童教育 #视觉训练 #数字敏感度 #视觉追踪能力 #线性空间感#不懂就问有问必答 #右脑开发 #注意力训练 #提高孩子学习的专注力 #孩子注意力不集中 #早期教育 #幼儿早教 #启蒙 #益智早教 #早教日常 #素材组 #专注力 #家庭教育 #儿童专注力训练 #游戏日常
https://www.xiaohongshu.com/discovery/item/661642dd000000001a01101d?secondshare=weixin&share_from_user_hidden=true&appuid=&apptime=1716809845
模仿以上样式制作10*10宫格的圆圈,随机生成一根线贯通所有的圆圈。并根据路线生成1-100的数字,随机空缺N个。
'''
目标:圆点百数图,线路随机
作者:AI对话大师 阿夏
日期:2024年5月29日
# 的代码基本上是正确的,我只进行了一些微小的调整。现在,无论S是奇数还是偶数,都可以成功生成图像。如果S是奇数,将会生成斜线路径,如果S是偶数,将会生成直线路径。请注意,由于路径的生成是随机的,每次运行代码,生成的路径都可能有所不同。
'''
import random
from PIL import Image, ImageDraw, ImageFontpath = r'C:\Users\jg2yXRZ\OneDrive\桌面\圆点百数图'
image_folder = path + r'\jpg'max_attempts = 1000 # 最大尝试次数for xx in range(10):s = 4k = int(s * s * 50 / 100) + 1number_list = list(range(1, s * s + 1))random_numbers = random.sample(number_list, k)result = [str('' if i + 1 in random_numbers else i + 1) for i in range(s * s)]width = 2100height = 2100image = Image.new('RGB', (width, height), color=(255, 255, 255))draw = ImageDraw.Draw(image)wide = 10# 如果宫格等于7-10,就150,否则就是200if s==6:dot_size = 200if s==5:dot_size = 250if s==4:dot_size =300if s==3:dot_size =350if s==2:dot_size =350else:dot_size = 150margin = 20dot_padding = int((width - 2 * margin - dot_size * s) / s)canvas_width = width - 2 * margincanvas_height = height - 2 * marginmatrix_width = s * dot_size + (s - 1) * dot_paddingmatrix_height = s * dot_size + (s - 1) * dot_paddingstart_x = margin + (canvas_width - matrix_width) // 2start_y = margin + (canvas_height - matrix_height) // 2directions = [(0, 1), (1, 0), (0, -1), (-1, 0)]attempts = 0 # 当前尝试次数success = False # 是否成功生成图像while attempts < max_attempts:start_point = (random.randint(0, s - 1), random.randint(0, s - 1))current_point = start_pointvisited_points = set([start_point])path = [start_point]def dfs():global current_pointglobal visited_pointsglobal pathif len(visited_points) == s * s:return Truefor direction in directions:neighbor_x = current_point[0] + direction[0]neighbor_y = current_point[1] + direction[1]neighbor = (neighbor_x, neighbor_y)if neighbor in visited_points:continueif 0 <= neighbor_x < s and 0 <= neighbor_y < s:visited_points.add(neighbor)path.append(neighbor)current_point = neighborif dfs():return Truevisited_points.remove(neighbor)path.pop()current_point = path[-1]return Falseif dfs():success = Truebreakattempts += 1if success:font = ImageFont.truetype(r'C:\Windows\Fonts\simsun.ttc', 100)for i in range(len(path) - 1):if i < len(result) - 1:center_x1 = start_x + path[i][1] * (dot_size + dot_padding) + dot_size // 2center_y1 = start_y + path[i][0] * (dot_size + dot_padding) + dot_size // 2center_x2 = start_x + path[i + 1][1] * (dot_size + dot_padding) + dot_size // 2center_y2 = start_y + path[i + 1][0] * (dot_size + dot_padding) + dot_size // 2draw.line([(center_x1, center_y1), (center_x2, center_y2)], fill=(0, 0, 0), width=wide)for i in range(s):for j in range(s):center_x = start_x + j * (dot_size + dot_padding) + dot_size // 2center_y = start_y + i * (dot_size + dot_padding) + dot_size // 2draw.ellipse([(center_x - dot_size // 2, center_y - dot_size // 2),(center_x + dot_size // 2, center_y + dot_size // 2),],fill=(255, 255, 255),outline=(0, 0, 0),width=wide,)# 给所有起始点添加数字1-35for i in range(len(result) - 1):center_x1 = start_x + path[i][1] * (dot_size + dot_padding) + dot_size // 2center_y1 = start_y + path[i][0] * (dot_size + dot_padding) + dot_size // 2center_x2 = start_x + path[i + 1][1] * (dot_size + dot_padding) + dot_size // 2center_y2 = start_y + path[i + 1][0] * (dot_size + dot_padding) + dot_size // 2number = result[i]text_width, text_height = draw.textsize(str(number), font=font)text_x = center_x1 - text_width // 2text_y = center_y1 - text_height // 2draw.text((text_x, text_y), str(number), font=font, fill=(0, 0, 0))# 给最后一个圆点坐标添加数字 36if len(result) == s * s:last_x = start_x + path[-1][1] * (dot_size + dot_padding) + dot_size // 2last_y = start_y + path[-1][0] * (dot_size + dot_padding) + dot_size // 2draw.ellipse([(last_x - dot_size // 2, last_y - dot_size // 2),(last_x + dot_size // 2, last_y + dot_size // 2),],fill=(255, 255, 255),outline=(0, 0, 0),width=wide,)text_width, text_height = draw.textsize(result[-1], font=font)text_x = last_x - text_width // 2text_y = last_y - text_height // 2draw.text((text_x, text_y), result[-1], font=font, fill=(0, 0, 0))image_path = image_folder + fr'\{xx:03d}.png'image.save(image_path)else:print(f'无法生成图像:s={s}')
结果:
一、s=2-6可以按照指定数量生成。

其中双数的线条是水平垂直,单数线条是水平垂直还有部分倾斜



10次里面6次生成失败(出现倾斜线条),4次生成顺利







二、s>7,,生成数量不稳定






结论:宫格数字大于7就很难生成指定的数量,需要反复运行,卡死后终止程序,再次运行,反复收集获得10宫格的图片








让孩子们写不同宫格的数字填空,然后涂上ABCDABCD、ABBABB……之类的样式
相关文章:
【教学类-59-】专注力视觉训练01(圆点百数图)
背景需求: 视觉训练的神奇效果,让你的宝贝成为焦点 - 小红书魔法视觉追踪-视觉训练—— 🔍视觉训练🔍 🔹想要提高宝宝的专注力,视觉训练是个绝佳方法! 🔹让宝宝仔细观察数字的路线&a…...
C 语言实例 - 循环输出26个字母
循环输出 26 个字母。 以下例子我们用变量 letter 来存储当前要输出的字母,然后,使用 for 循环来重复 26 次输出字母,并在每个字母后面加一个空格。 循环内部使用 printf 函数来输出 letter 变量的值,%c 是 printf 的格式控制符…...
qt多语言翻译不生效的原因
假设您有QT语言家的基础知识,假设网上那些所有的问题您都已经排查过了,但依然翻译不生效,那么可以看下这篇帖子,其实就一个问题,变量的生命周期,假设QTranslator是一个函数内的变量,且没有被声明…...
springboot集成达梦数据库8,用springboot+mtbatisplus查询值为空
springboot集成达梦数据库8,用springbootmtbatisplus查询值为空 背景:springboot集成达梦数据库8,用springbootmtbatisplus查询值为空,但是在DB管理工具中是可以查询到数据的。 原因及解决方法:执行添加语句后…...
C语言-----指针数组 \ 数组指针
一 指针数组 用来存放指针的数组 int arr[10]; //整型数组 char ch[5]; //字符数组 int * arr[6]; //存放整型指针的数组 char * arr[5]; //存放字符指针的数组 // 指针数组的应用 int main() {int arr1[] { 1,2,3,4,5 };int arr2[] { 2,3,4,5,6 };int arr3[] { 3,4,…...
Go语言 gRPC 简述
参考文章: 聊聊gRPC的特性和背后设计的原则(一)-腾讯云开发者社区-腾讯云 grpc-我们为什么要用gRpc?gRpc快在哪里?_grpc 优点-CSDN博客 GRPC详解-CSDN博客 1. 什么是gRPC gRPC 是一个高性能 远程调用(RPC)框架&#…...
信息系统项目管理师0136:工具与技术(8项目整合管理—8.9结束项目或阶段—8.9.2工具与技术)
点击查看专栏目录 文章目录 8.9.2 工具与技术 8.9.2 工具与技术 专家判断 结束项目或阶段过程中,应征求具备如下领域相关专业知识或接受过相关培训的个人或小组的意见,涉及领域包括:管理控制;审计;法规与采购…...
appium-driver方法待整理。。
app C:\Users\v-hongweishi\AppData\Local\Programs\Xmind\Xmind.exe deviceName DESKTOP-7NJ1ENB platformName Windows 应用程序ID(AppId)是应用程序用户模型 ID (AppUserModelID),简称 AUMID Outlook …...
Android Ktor 网络请求框架
Ktor 是一个由 JetBrains 开发的用于 Kotlin 编程语言的应用框架,旨在创建高性能的异步服务器和客户端应用程序。由于完全基于 Kotlin 语言,Ktor 能够让开发者编写出简洁、可读性强且功能强大的代码,特别适合那些已经熟悉 Kotlin 的开发人员。…...
交互设计如何助力传统技艺在当代复兴?
背景介绍 榫卯是中国传统木工中一种独特的接合技术,它通过构件间的凸凹部分相互配合来实现两个或多个构件的紧密结合。这种结构方式不依赖于钉子或其他金属连接件,而是利用木材自身的特性,通过精巧的设计和工艺,实现构件间的稳定…...
使用 Django Rest Framework 构建强大的 Web API
文章目录 安装 Django Rest Framework创建序列化器创建视图和 URL 路由配置认证和权限测试 API Django Rest Framework(DRF)是一个强大的工具,用于在 Django Web 框架中构建灵活且功能丰富的 Web API。它提供了许多功能,包括序列化…...
老师如何对付挑事儿的家长?
身为老师,你有没有遇到过这样的家长:孩子在学校里闹点小矛盾,或者作业分数有点争议,他们就气势汹汹地来找你,说你偏心,甚至在其他家长面前说三道四?面对这种爱“挑事”的家长,老师们…...
若安装了Python3且没有删除Python2,那么启动yum命令会报错:
若安装了Python3且没有删除Python2,那么启动yum命令会报错: File "/usr/bin/yum", line 30 except KeyboardInterrupt e: ^ SyntaxError: invalid syntax 情况一报错原因 这种情况的原因是yum配置文件解释器默认是/…...
JVM(四)
在上一篇中,介绍了JVM组件中的运行时数据区域,这一篇主要介绍垃圾回收器 JVM架构图: 1、垃圾回收概述 在第一篇中介绍JVM特点时,有提到过内存管理,即Java语言相对于C,C进行的优化,可以在适当的…...
Leetcode373.查找和最小的 K 对数字
文章目录 题目描述解题思路代码 题目链接 题目描述 给定两个以 非递减顺序排列 的整数数组 nums1 和 nums2 , 以及一个整数 k 。 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。 请找到和最小的 k 个数对 (u1,v1), (u2,v2) … (…...
windows 安装 使用 nginx
windows 安装 使用 nginx nginx官网下载地址:https://nginx.org/en/download.html 下载稳定版本即可 下载压缩包解压到即可 进入文件夹中,打开命令行窗口,执行启动命令 start nginx.exe验证(默认是80端口)&#x…...
【运维】Linux 端口管理实用指南,扫描端口占用
在 Linux 系统中,你可以使用以下几种方法来查看当前被占用的端口,并检查 7860 到 7870 之间的端口: 推荐命令: sudo lsof -i :7860-7870方法一:使用 netstat 命令 sudo netstat -tuln | grep :78[6-7][0-9]这个命令…...
Android笔记--应用安装
这一节了解一下普通应用安装app的方式,主要是唤起系统来安装,直接上代码: 申请权限 <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name"android.permission.WRITE_EXT…...
今日分享站
同志们,字符函数和字符串函数已经全部学习完啦,笔记也已经上传完毕,大家可以去看啦。字符函数和字符串函数and模拟函数 加油!!!!!...
基于python flask的旅游数据大屏实现,有爬虫有数据库
背景 随着旅游行业的快速发展,数据在旅游决策和规划中的重要性日益凸显。基于 Python Flask 的旅游数据大屏实现研究旨在结合爬虫技术和数据库存储,为用户提供全面、实时的旅游信息展示平台。 爬虫技术作为数据采集的重要手段,能够从各种网…...
如何免费实现iOS设备虚拟定位?iFakeLocation跨平台实用指南
如何免费实现iOS设备虚拟定位?iFakeLocation跨平台实用指南 【免费下载链接】iFakeLocation Simulate locations on iOS devices on Windows, Mac and Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/if/iFakeLocation 你是否曾经想过,在舒适…...
ARM Trace Address Comparator寄存器原理与应用
1. ARM Trace Address Comparator寄存器详解在嵌入式系统调试和性能分析领域,地址比较器(Address Comparator)是一个至关重要的硬件组件。作为ARM CoreSight调试架构的一部分,Trace Address Comparator寄存器组为开发者提供了精确控制指令流追踪的能力。…...
RAG:嵌入模型评估与选型
在RAG系统中,嵌入模型是检索质量的关键组件,它决定了系统能否真正“理解”用户意图并从海量知识中精准召回相关信息,其语义匹配精度直接决定了整个RAG的性能上限。 一、嵌入模型评估指标 1.1 公开基准 MTEB v2 是目前全球公认最权威的大规…...
基于本地LLM与多智能体架构的DD游戏引擎实现与优化
1. 项目概述:一个本地化、多智能体驱动的龙与地下城游戏引擎最近在折腾一个挺有意思的项目,叫 TD-LLM-DND。简单来说,这是一个让你能在自己电脑上,用本地运行的大语言模型(LLM)来跑一场“龙与地下城”&…...
现实是期待的土壤,期待是改变现实的方向
期待的对立统一结构期待 理想应然(正题) vs 现实实然(反题),二者的统一构成一个动态的矛盾运动。同一性(相互依存):没有对现实的不满足和对未来的向往,就没有期待&#…...
3分钟完成Windows和Office永久激活:KMS智能激活脚本终极指南
3分钟完成Windows和Office永久激活:KMS智能激活脚本终极指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活烦恼吗?Office突然变成只读模式让你工…...
硅谷创新精神:从车库、真空管到一美元年薪的启示
1. 硅谷创新精神的物理原点:从车库到孤寂的一美元在科技圈待久了,总会听到一些传奇故事,比如乔布斯在车库里组装第一台苹果电脑,或者惠普的两位创始人在车库里捣鼓出第一个音频振荡器。这些故事被反复传颂,几乎成了硅谷…...
LVGL列表控件实战:5分钟搞定一个带图标和事件响应的菜单界面
LVGL列表控件实战:5分钟打造高交互性嵌入式菜单界面 在嵌入式设备的人机交互设计中,菜单界面是最基础也最关键的组件之一。想象一下,当你需要为智能家居控制面板设计一个简洁明了的操作菜单,或者为工业设备开发一个功能选择界面时…...
XUnity自动翻译器:打破语言壁垒的终极Unity游戏汉化解决方案
XUnity自动翻译器:打破语言壁垒的终极Unity游戏汉化解决方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾经因为语言障碍而错过精彩的游戏剧情?是否在面对日文RPG或英文…...
终极网盘直链下载助手完整指南:告别限速,快速获取八大平台真实下载地址
终极网盘直链下载助手完整指南:告别限速,快速获取八大平台真实下载地址 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里…...


