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

背景需求:

视觉训练的神奇效果,让你的宝贝成为焦点 - 小红书魔法视觉追踪-视觉训练—— 🔍视觉训练🔍 🔹想要提高宝宝的专注力,视觉训练是个绝佳方法! 🔹让宝宝仔细观察数字的路线,锻炼他们的视觉敏感度。 🔹在空白处填写数字,可根据线条的方向按顺序填写。 💡注意事项:引导宝宝一步一步进行,不要急于求成哦。 🔍视觉追踪能力🔍 🔹想让宝宝的视觉追踪能力更强?这里有个小技巧! 🔹让宝宝追踪图中数字的线条,提高他们的追踪能力。 🔹练习后,宝宝将变得更加敏锐,追踪能力也会有长足进步哦。 💡注意事项:适当调整难度,让宝宝充分体验追踪的乐趣。 🔍视觉线性空间感🔍 🔹想要培养宝宝的视觉线性空间感?这里有个妙招! 🔹让宝宝仔细观察数字的线条,理解线性空间感的变化。 🔹帮助宝宝感知线条的长度、方向和位置,提升他们的空间感知能力。 💡注意事项:让宝宝在放松愉快的状态下进行训练。 🎉快来试试这些训练方法吧!让宝宝的专注力更上一层楼!🎉 #儿童教育 #视觉训练 #数字敏感度 #视觉追踪能力 #线性空间感#不懂就问有问必答 #右脑开发 #注意力训练 #提高孩子学习的专注力 #孩子注意力不集中 #早期教育 #幼儿早教 #启蒙 #益智早教 #早教日常 #素材组 #专注力 #家庭教育 #儿童专注力训练 #游戏日常icon-default.png?t=N7T8https://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, ImageFont

path = r'C:\Users\jg2yXRZ\OneDrive\桌面\圆点百数图'
image_folder = path + r'\jpg'

max_attempts = 1000  # 最大尝试次数

for xx in range(10):
    s = 4
    
    k = int(s * s * 50 / 100) + 1
    number_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 = 2100
    height = 2100
    image = Image.new('RGB', (width, height), color=(255, 255, 255))
    draw = ImageDraw.Draw(image)
    wide = 10

    # 如果宫格等于7-10,就150,否则就是200
    if s==6:
        dot_size = 200
    if s==5:
        dot_size = 250
    if s==4:
        dot_size =300
    if s==3:
        dot_size =350
    if s==2:
        dot_size =350
    else:
        dot_size = 150
    margin = 20
    dot_padding = int((width - 2 * margin - dot_size * s) / s)

    canvas_width = width - 2 * margin
    canvas_height = height - 2 * margin

    matrix_width = s * dot_size + (s - 1) * dot_padding
    matrix_height = s * dot_size + (s - 1) * dot_padding

    start_x = margin + (canvas_width - matrix_width) // 2
    start_y = margin + (canvas_height - matrix_height) // 2

    directions = [(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_point
        visited_points = set([start_point])

        path = [start_point]

        def dfs():
            global current_point
            global visited_points
            global path

            if len(visited_points) == s * s:
                return True

            for 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:
                    continue

                if 0 <= neighbor_x < s and 0 <= neighbor_y < s:
                    visited_points.add(neighbor)
                    path.append(neighbor)
                    current_point = neighbor

                    if dfs():
                        return True

                    visited_points.remove(neighbor)
                    path.pop()
                    current_point = path[-1]

            return False

        if dfs():
            success = True
            break

        attempts += 1

    if 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 // 2
                center_y1 = start_y + path[i][0] * (dot_size + dot_padding) + dot_size // 2
                center_x2 = start_x + path[i + 1][1] * (dot_size + dot_padding) + dot_size // 2
                center_y2 = start_y + path[i + 1][0] * (dot_size + dot_padding) + dot_size // 2
                draw.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 // 2
                center_y = start_y + i * (dot_size + dot_padding) + dot_size // 2

                draw.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-35
        for i in range(len(result) - 1):
            center_x1 = start_x + path[i][1] * (dot_size + dot_padding) + dot_size // 2
            center_y1 = start_y + path[i][0] * (dot_size + dot_padding) + dot_size // 2
            center_x2 = start_x + path[i + 1][1] * (dot_size + dot_padding) + dot_size // 2
            center_y2 = start_y + path[i + 1][0] * (dot_size + dot_padding) + dot_size // 2

            number = result[i]
            text_width, text_height = draw.textsize(str(number), font=font)
            text_x = center_x1 - text_width // 2
            text_y = center_y1 - text_height // 2
            draw.text((text_x, text_y), str(number), font=font, fill=(0, 0, 0))

        # 给最后一个圆点坐标添加数字 36
        if len(result) == s * s:
            last_x = start_x + path[-1][1] * (dot_size + dot_padding) + dot_size // 2
            last_y = start_y + path[-1][0] * (dot_size + dot_padding) + dot_size // 2
            draw.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 // 2
            text_y = last_y - text_height // 2
            draw.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……之类的样式

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

展锐UIS7885+android13代码目录

文章目录 bsp目录1. bootloader1.1 chipram1.2 lk1.1 平台启动初始化代码目录1.2 命令实现、下载和启动等相关代码 2. kernel目录(如kernel5.4)2.1 设备树目录2.2 内核配置文件 bsp目录 1. bootloader 1.1 chipram 说明目录展锐芯片arch\arm\include arch\arm\cpu\armv8驱动…

Vue 实例

一、页面效果图 二、代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><script src"../vue.js" type"text/javascript"></script><title>vue 实例</title></head><body>&l…

与AI对话 --如何更好的使用AI工具

文章目录 与AI对话 --如何更好的使用AI工具1、认识AI工具&#xff1a;2、对话原则&#xff1a;3、提问步骤&#xff1a;4、AI可以学习什么&#xff1f;5、提问技巧&#xff1a;1、提出假设性问题:2、&#xff08;鼓励引导式提问&#xff09;跨学科思考:举个例子&#xff1a; 3、…

哪里能下载到合适的衣柜3D模型素材?

室内设计师在进行家居设计时&#xff0c;衣柜3D模型素材是非常重要的工具。那么&#xff0c;哪里能下载到合适的衣柜3D模型素材呢? 一、建e网&#xff1a; ①建e网是一个专注于3D模型素材分享的平台&#xff0c;上面可以找到大量的衣柜3D模型。 ②该网站提供的模型种类丰富&am…

证件照换底色推荐什么软件好?这五个可以随意换证件照底色

证件照&#xff0c;无论是考证还是工作&#xff0c;都是我们生活中不可或缺的一部分。 一张高质量的证件照&#xff0c;不仅能够展示我们专业的形象&#xff0c;还能在众多候选人中脱颖而出。像这种时候&#xff0c;我们就可以使用证件照制作软件啦&#xff01;无论是考证、护…

引导过程与服务控制06

引导过程与服务控制 一、引导过程 引导过程&#xff1a;当你按下开机的电源键直到屏幕显示登录的画面&#xff0c;这中间系统做的一些的开机过程。 1、开机自检&#xff08;BIOS&#xff09; 服务器开机之后&#xff0c;根据主板的bios设置&#xff0c;对cup 内存&#xff0…

sendmail发送邮件配置详解?如何正确设置?

sendmail发送邮件如何保障安全&#xff1f;AokSend有何安全措施&#xff1f; 为了确保sendmail发送邮件的高效性和安全性&#xff0c;正确配置是至关重要的。本文将详细介绍sendmail发送邮件的配置步骤&#xff0c;并探讨如何保障sendmail发送邮件的安全性。同时&#xff0c;我…

cesium本地文档-天空盒-arcgis切片404-服务查询

1.vite-plugin-cesium // vite-plugin-cesium 是一个 Vite 插件&#xff0c;用于在 Vite 项目中轻松集成和使用 Cesium 地图引擎。它简化了在 Vite 项目中使用 Cesium 的配置和引入过程。 // 具体来说&#xff0c;vite-plugin-cesium 主要提供了以下功能&#xff1a; // 自动…

人大金仓 KingBase查询死锁,释放死锁

人大金仓(kingbase)查询数据库死锁及释放 kingbase锁表排查以及释放锁 总结下 -- 查询&#xff0c;可自己添加where条件 SELECT * FROM sys_stat_activity WHERE state ! idle AND wait_event_typeLock-- 结束进程 SELECT sys_terminate_backend(pid);

JAVA:Random详解

Java中的java.util.Random类用于生成伪随机数。它提供了多种方法来生成不同类型的随机数&#xff0c;包括整数、浮点数和布尔值。以下是对Random类及其主要方法的详细介绍 一、生成随机数 创建一个Random对象&#xff0c;可以使用以下两种方式&#xff1a; 无参构造函数&…

qemu使用简介

安装qemu git clone https://github.com/qemu/qemu.git mkdir build cd build ../configure make -j16 make install 编译内核 wget https://mirror.bjtu.edu.cn/kernel/linux/kernel/v5.x/linux-5.10.tar.xz tar -xf linux-5.10.tar.xzsudo apt-get install gcc-arm-linux-g…

利用C++与Python调用千帆免费大模型,构建个性化AI对话系统

千帆大模型已于2024年4月25日正式免费&#xff0c;调用这个免费的模型以实现自己的AI对话功能&#xff0c;遵循以下步骤&#xff1a; 了解千帆大模型&#xff1a; 千帆大模型是百度智能云推出的一个平台&#xff0c;提供了一系列AI能力和工具&#xff0c;用于快速开发和应用A…

Three.js 中的场景与相机基础

Three.js 中的场景与相机基础 一、场景&#xff08;Scene&#xff09; 在 Three.js 中&#xff0c;场景是所有 3D 对象存在和交互的容器。艾斯视觉作为行业ui设计与前端开发服务商很高兴能在这里与你共同探讨&#xff1a;它就像是一个虚拟的 3D 空间&#xff0c;我们可以在其中…

docker安装nacos单机部署

话不多说,直接进入主题 1.查看nacos镜像 docker search nacos 一般选第一个也就是starts最高的。 2.拉取nacos镜像 docker pull nacos/nacos-serverdocker pull nacos/nacos-server:1.4.1 由于我使用的项目alibabacloud版本对应的是nacos1.4.1版本的,所以我安装的是1.4.1…

Data Lakehouse:你的下一个数据仓库

作者&#xff1a;张友东 StarRocks TSC member/镜舟科技 CTO 数据分析是现代企业和组织决策过程中不可或缺的一部分&#xff0c;数据分析技术经过数十年的发展&#xff0c;需求场景从 BI 报表到数据探寻、实时预测、用户画像等不断丰富&#xff0c;技术架构经历从数据仓库、数据…

中学生学人工智能系列:如何用AI学英语

经常有读者朋友给公众号《人工智能怎么学》留言咨询如何使用人工智能学习语文、数学、英语等科目。这些都是中学教师、中学生朋友及其家长们普遍关注的问题。仅仅使用留言回复的方式&#xff0c;不可能对这些问题做出具体和透彻的解答&#xff0c;因此本公众号近期将推出中学生…

【Spring框架全系列】IOC DI案例,setter方法和构造方法注入(详解) + 思维导图

文章目录 一.概念实操Maven父子工程 二. IOC和DI入门案例【重点】1 IOC入门案例【重点】问题导入1.1 门案例思路分析1.2 实现步骤2.1 DI入门案例思路分析2.2 实现步骤2.3 实现代码2.4 图解演示 三、Bean的基础配置问题导入问题导入1 Bean是如何创建的【理解】2 实例化Bean的三种…

一年收入大几十个的副业兼职,闲鱼新玩法,新手小白可做,无门槛

在开始分享之前&#xff0c;我想先了解一下&#xff0c;大家是否曾在各大公众号上参与过各种打卡活动&#xff1f;比如减肥打卡、英语阅读打卡、考研考公打卡等等。如今&#xff0c;打卡已经成为现代人生活中不可或缺的一部分。无论是学习、健身还是工作&#xff0c;打卡都能有…

生成模型 | 从 VAE 到 Diffusion Model (下)

&#x1f427;大模型系列篇章 &#x1f496; 多模态大模型 &#x1f50e; GroundingDINO 论文总结 &#x1f496; 端到端目标检测 &#x1f50e; 从DETR 到 GroundingDINO &#x1f496; 多模态大模型 &#x1f449; CLIP论文总结 &#x1f496; 多模态大模型 &#x1f449; E…

【C语言】strstr函数的使用和模拟

前言 今天给大家带来一个字符串函数&#xff0c;strstr()的使用介绍和模拟实现。 模拟实现这个函数&#xff0c;可以帮助我们更深刻地理解这个函数的功能和提高解决字符串相关问题的能力&#xff0c;有兴趣的话就请往下看吧。 strstr函数介绍 函数功能&#xff1a; strstr函…