【教学类-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 的旅游数据大屏实现研究旨在结合爬虫技术和数据库存储,为用户提供全面、实时的旅游信息展示平台。 爬虫技术作为数据采集的重要手段,能够从各种网…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...