【教学类-54-01】20240510超级对对碰(圆点拼图)(9*5、0-255随机)

2024-05-12 05:04

本文主要是介绍【教学类-54-01】20240510超级对对碰(圆点拼图)(9*5、0-255随机),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作品展示

背景需求:

奕娃幼儿园小中大班益智区超级对对碰 - 小红书#幼儿园益智区  #幼儿园益智区素材  #幼儿园区域材料  #幼儿园环创icon-default.png?t=N7T8https://www.xiaohongshu.com/discovery/item/6279bb4d000000002103be71?app_platform=android&ignoreEngage=true&app_version=8.34.0&share_from_user_hidden=true&type=video&author_share=1&xhsshare=WeixinSession&shareRedId=ODszMTs4Nk82NzUyOTgwNjg3OTlHS0xC&apptime=1715423047

我觉得这个拼图比较有趣,适合幼儿选择,就想用Python写出来。

AI的思路是:

1、在画布2100*2970(A4竖版)画布里生成9*5单元格,白色背景、黑色线框,单元格离上下左右边距100,保存为底图

2-1、在每个单元格顶部线条中点为圆心画一个半径为80的圆形,填充0-255的随机颜色

2-2、在每个单元格底部线条中点为圆心画一个半径为80的圆形,填充0-255的随机颜色

2-3、在每个单元格左侧线条中点为圆心画一个半径为80的圆形,填充0-255的随机颜色

2-4、在每个单元格右侧线条中点为圆心画一个半径为80的圆形,填充0-255的随机颜色.

3、继续覆盖一个9*5单元格(便于切割)、保存为彩色拼图。

代码展示:

'''
项目:超级对对碰(色彩圆点)9*6 +底图(颜色0-255随机)
作者:AI对话大师,阿夏
时间:20240510
'''from PIL import Image, ImageDraw
import random,osprint('--------1、制作图片-----------')
path=r'C:\Users\jg2yXRZ\OneDrive\桌面\超级对对碰'folder_path=path+r'\jpg'
os.makedirs(folder_path,exist_ok=True)r=80
for ii in range(3):# 创建画布canvas_width = 2100canvas_height = 2970canvas_color = (255, 255, 255)  # 白色背景line_color = (0, 0, 0)  # 黑色线条line_width = 10margin = 100  # 边距canvas = Image.new('RGB', (canvas_width, canvas_height), canvas_color)draw = ImageDraw.Draw(canvas)# 计算单元格大小和绘制区域num_rows = 9num_cols = 6cell_size = min((canvas_width - 2 * margin) // num_cols, (canvas_height - 2 * margin) // num_rows)start_x = (canvas_width - cell_size * num_cols) // 2start_y = (canvas_height - cell_size * num_rows) // 2# 绘制单元格和圆形for row in range(num_rows + 1):y = start_y + row * cell_sizedraw.line([(start_x, y), (start_x + cell_size * num_cols, y)], fill=line_color, width=line_width)for col in range(num_cols + 1):x = start_x + col * cell_sizedraw.line([(x, start_y), (x, start_y + cell_size * num_rows)], fill=line_color, width=line_width)# 保存图像canvas.save(folder_path+fr'\{ii:02d}底图.png')# 上边的圆for row in range(num_rows):for col in range(num_cols):center_x = start_x + (col + 0.5) * cell_sizecenter_y = start_y + row * cell_sizecircle_radius = rcircle_color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))draw.ellipse([(center_x - circle_radius, center_y - circle_radius),(center_x + circle_radius, center_y + circle_radius)], fill=circle_color)# 下边的圆                     # 绘制圆形for row in range(num_rows):for col in range(num_cols):center_x = start_x + (col + 0.5) * cell_sizecenter_y = start_y + (row + 1) * cell_sizecircle_radius = rcircle_color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))draw.ellipse([(center_x - circle_radius, center_y - circle_radius),(center_x + circle_radius, center_y + circle_radius)], fill=circle_color)# 左边的圆for row in range(num_rows):for col in range(num_cols):center_x = start_x + col * cell_sizecenter_y = start_y + (row + 0.5) * cell_sizecircle_radius = rcircle_color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))draw.ellipse([(center_x - circle_radius, center_y - circle_radius),(center_x + circle_radius, center_y + circle_radius)], fill=circle_color)# 右边的圆for row in range(num_rows):for col in range(num_cols):center_x = start_x + (col + 1) * cell_sizecenter_y = start_y + (row + 0.5) * cell_sizecircle_radius = rcircle_color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))draw.ellipse([(center_x - circle_radius, center_y - circle_radius),(center_x + circle_radius, center_y + circle_radius)], fill=circle_color)#  绘制单元格和圆形(再加一次黑色框线,便于裁剪)for row in range(num_rows + 1):y = start_y + row * cell_sizedraw.line([(start_x, y), (start_x + cell_size * num_cols, y)], fill=line_color, width=line_width)for col in range(num_cols + 1):x = start_x + col * cell_sizedraw.line([(x, start_y), (x, start_y + cell_size * num_rows)], fill=line_color, width=line_width)# 保存图像彩色图片canvas.save(folder_path+fr'\{ii:02d}.png')print('--------2、png 合并pdf-----------')
import os
from PIL import Image
from reportlab.lib.pagesizes import A4
from reportlab.lib.utils import ImageReader
from reportlab.pdfgen import canvas# 指定文件夹路径# 获取文件夹中的所有PNG图片文件
image_files = [file for file in os.listdir(folder_path) if file.endswith('.png')]# 创建一个新的PDF文件
pdf_file = path+r'\超级对对碰底图.pdf'  # 替换为实际的输出PDF文件路径
c = canvas.Canvas(pdf_file, pagesize=A4)# 遍历每个PNG图片文件并将其添加到PDF中
for image_file in image_files:image_path = os.path.join(folder_path, image_file)image = Image.open(image_path)image_reader = ImageReader(image)c.setPageSize(A4)c.drawImage(image_reader, 0, 0, width=A4[0], height=A4[1])c.showPage()# 保存并关闭PDF文件
c.save()# print(f"合并完成,PDF文件保存在:{pdf_file}")    

 最后结果:

1、JPG文件夹里:生成3张彩色图和3张底图

2、JPG文件夹外,:合并1个打印文件

教学实践:

时间:2024年5月9日

班级:中4

人数:2人(百日咳隔离)

纸框后面贴了一张白色铅画纸

学具使用现象:

1、9*6格共有54块,数量很多——这份学具真的让孩子们学了很长时间(数独、迷宫、描字帖等学具很多孩子一会儿就完成了)

2、随机颜色太多了,以至于核对大量相近的绿色,花费很长时间,幼儿和老师看得眼睛疼,中途休息了好几次。

3、因为拼上的卡片会移动,所以在卡纸后面贴了一个白色铅画纸(没有框格线),所以幼儿帖的时候一行格子帖歪了。

4、幼儿为了提高效率,把卡片重叠在一起,手动一次性剪,不少卡片剪歪了。

5、两位孩子在两个桌上操作。但都有不少卡片被蹭到地上。(至少有7次拾卡片)——需要2个卡片盒子吗,一个放没有挑选的,一个放选过的不正确的卡片?

6、两套卡片混在一起了,根本看不出是谁的(图案是圆点,结构相同,只有颜色不同,但这个无法区分卡片到底属于那一套。幸运的是我用的卡纸颜色有细微不同(浅绿、浅蓝),这才能区分。

7、幼儿说:”我这里还有白色(白灰色)点子,一点都看不清!“

8、幼儿多次求助”老师,你帮帮我!“”老师,我做不出,不想做了!“

学具调整:

1、数量调整:

从9*6(54)(为了凑满A4竖版,保持单元格是正方形)改为8*5(40)、或7*4(28),减少数量,可以提高幼儿制作效率(最前面和最后面都容易做,中间判断筛选费时)

2、颜色调整:

从0-255随机颜色,改成固定的7-8种不同色系,在它们中间随机取得。这样颜色会少很多,而且只有一种红、一种黄……,就不用区分相近色了。

3、在圆点上添加图案。

打印了3份,还留了一份银白纸的图片,我用记号笔在一些浅色的圆点上加上简单的符号,希望用这些符号作为另一种辨识标记,抵抗”相近色(如:绿色)“带来的视觉干扰。

(塑封后,黑色记号笔图案就被保留在图案里)

4、卡片都用裁纸刀或剪刀切割,边缘整齐

5、卡片需要“圆角”

本来我还想做一款“圆点在单元格左上角坐标、右上角坐标、左下角坐标、右下角坐标”的拼图,但是因为以上的“圆角”,如果打印出来切割的图块,为了安全,四角都会被剪掉一部分。导致圆心部分出现缺失空白。所以就不考虑这种样式了。

这篇关于【教学类-54-01】20240510超级对对碰(圆点拼图)(9*5、0-255随机)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/981670

相关文章

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

集中式版本控制与分布式版本控制——Git 学习笔记01

什么是版本控制 如果你用 Microsoft Word 写过东西,那你八成会有这样的经历: 想删除一段文字,又怕将来这段文字有用,怎么办呢?有一个办法,先把当前文件“另存为”一个文件,然后继续改,改到某个程度,再“另存为”一个文件。就这样改着、存着……最后你的 Word 文档变成了这样: 过了几天,你想找回被删除的文字,但是已经记不清保存在哪个文件了,只能挨个去找。真麻烦,眼睛都花了。看

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4

AI学习指南深度学习篇-带动量的随机梯度下降法的基本原理

AI学习指南深度学习篇——带动量的随机梯度下降法的基本原理 引言 在深度学习中,优化算法被广泛应用于训练神经网络模型。随机梯度下降法(SGD)是最常用的优化算法之一,但单独使用SGD在收敛速度和稳定性方面存在一些问题。为了应对这些挑战,动量法应运而生。本文将详细介绍动量法的原理,包括动量的概念、指数加权移动平均、参数更新等内容,最后通过实际示例展示动量如何帮助SGD在参数更新过程中平稳地前进。

AI学习指南深度学习篇-带动量的随机梯度下降法简介

AI学习指南深度学习篇 - 带动量的随机梯度下降法简介 引言 在深度学习的广阔领域中,优化算法扮演着至关重要的角色。它们不仅决定了模型训练的效率,还直接影响到模型的最终表现之一。随着神经网络模型的不断深化和复杂化,传统的优化算法在许多领域逐渐暴露出其不足之处。带动量的随机梯度下降法(Momentum SGD)应运而生,并被广泛应用于各类深度学习模型中。 在本篇文章中,我们将深入探讨带动量的随

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密 可以将表情,动物,水果,表情,手势,猫语,兽语,狗语,爱语,符号,数字,字母,加密和解密 可以将文字、字母、数字、代码、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容 源码截图: https://www.httple.net/152649.html

认知杂谈54

I I 内容摘要: 这篇内容主要有以下几个要点:首先,沟通不在一个调时可学习人际交往心理学知识、线上课程及关注名师来改善。其次,挑房子、工作、搭档和人生伴侣要谨慎,找心灵相通能共同进步的人。再者,远离负能量的人,多跟积极向上的人相处攒正能量。然后,人生如爬山,要专注自身步伐,不与他人比较,坚持目标,可通过看《微习惯》、用专注 APP、参加训练营提升专注力和自律能力。此外,别瞎操心他人,每个人有自

《教学与管理》

《教学与管理》系国家新闻出版总署批准,面向国内外公开发行的教育类学术期刊。《教学与管理》国际标准刊号ISSN1004-5872,国内统一刊号CN14-1024/G4。 教学与管理来稿注意事项 ■本刊主要设有“理论研究、教育观察、办学改革、学校管理、班级管理、教研活动、教育法制、德育建设、课程建设、教学研究、教学方法、教材研究、教学评价、学法指导、考试研究、比较教育”等栏目。 ■本刊读者对象为

【超级干货】2天速成PyTorch深度学习入门教程,缓解研究生焦虑

3、cnn基础 卷积神经网络 输入层 —输入图片矩阵 输入层一般是 RGB 图像或单通道的灰度图像,图片像素值在[0,255],可以用矩阵表示图片 卷积层 —特征提取 人通过特征进行图像识别,根据左图直的笔画判断X,右图曲的笔画判断圆 卷积操作 激活层 —加强特征 池化层 —压缩数据 全连接层 —进行分类 输出层 —输出分类概率 4、基于LeNet