【教学类-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、卡片需要“圆角”

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis】Redis 事务

Redis 的事务的本质是一组命令的批处理。这组命令在执行过程中会被顺序地、一次性 全部执行完毕,只要没有出现语法错误,这组命令在执行期间不会被中断 1.事务特性 仅保证了数据的一致性 这组命令中的某些命令的执行失败不会影响其它命令的执行&#xff…

如何挑选家用洗地机?需要注意什么?这四款洗地机性价比超高

洗地机结合了扫、拖、吸的功能,一台机器,一个推拉的动作便可以清理干净地面上的干湿垃圾,大大的节省了我们做家务的清洁时间,提升了生活质量。但是面对市面上众多的洗地机型号,我们要怎么去挑选呢,需要主要…

Linux下安装mysql8.0(以tar.xz包安装--编译安装)

前言:原文在我的博客网站中,持续更新数通、系统方面的知识,欢迎来访! Linux下安装mysql8.0(以tar.xz包安装--编译安装)https://myweb.myskillstree.cn/126.html 目录 一、下载对应自己glic版本的MySQL …

论文解读--High-resolution Automotive Radar Point Cloud Imaging and Processing

高分辨汽车雷达点云成像和处理 摘要 汽车雷达具有体积小、硬件成本低、全天候工作、高分辨率等公认的优点,是高级驾驶辅助系统(ADAS)必不可少的一类重要传感器。然而,低角度分辨率和低成像性能的限制很难满足下一阶段ADAS的需要。新兴的4D成像雷达采用多…

如何打破数据管理僵局,释放数据资产价值?[AMT企源案例]

引言 数据是企业信息运作的核心和基础,是影响企业决策的关键要素,而主数据是数据中的最基础和公共的部分。面临长期以来的数据治理缺失导致的杂论局面,如何有条不紊推进主数据管理,让数据资产“活”起来?S集团的做法非…

Python可以自学但是千万不要乱学,避免“埋头苦学”的陷阱!

前言 Python可以自学但是千万不要乱学! 归根结底因为学习是个反人性的过程! 复盘没学下去的网课,都有以下特点: 😅 臣妾听不懂啊! 初次接触编程遇到太多抽象高深的概念,不了解老师口中的一个…

Android APP读写外置SD卡无权限 java.io.IOException: Permission denied

在物联网应用里,app需要对挂载SD卡读写文件,从 Android 4.4(KitKat)版本开始,Google 引入了一项名为 "Storage Access Framework" 的新功能,该功能限制了应用对外部存储的直接读写权限,要不然就是…

【电容】芯片旁边为什么要接0.1uf(100nF)电容,退耦电容是什么意思,为什么要大电容并小电容

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 ** 一般芯片旁边为什么都会放一个小电容,而且大部分情况下都是100nF ** 1、为什么要放这个电容 首先我们知道这个…

雷森托尔环保科技有限公司见证2024杭州数字供应链装备展潮流

参展企业介绍 青岛雷森托尔环保科技有限公司创建于2018年,位于山东青岛,现注册资本3000万。公司主营生产模压木托盘、化工木托盘、大型设备木包装、出口木托盘、酒柜木酒架等,公司拥有技术人员6人,均为包装设计专业毕业&#xff0…

80.网络游戏逆向分析与漏洞攻防-移动系统分析-利用数据包尝试穿墙

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了 内容…

Mask2former代码详解

1.整体流程 Mask2former流程如图所示,对于输入图片,首先经过Resnet等骨干网络获得多层级特征,对于获得的多层级特征,一个方向经过pixel decoder(基于DetrTransformerEncoderLayer)得到per-pixel embedding,另外一个方向经过transf…

2024第十六届“中国电机工程学会杯”数学建模A题思路分析

文章目录 1 赛题思路2 比赛日期和时间3 竞赛信息4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间:2024…