> 文章列表 > 【教学类-34-01】拼图(运动项目)3*4格子(中班主题《个别化拼图》健康偏艺术-美术)

【教学类-34-01】拼图(运动项目)3*4格子(中班主题《个别化拼图》健康偏艺术-美术)

【教学类-34-01】拼图(运动项目)3*4格子(中班主题《个别化拼图》健康偏艺术-美术)

 

 

背景需求:

一个月的Python纸类学具研究中,我发现个别男孩喜欢把作业中的数字、图案、单元格剪成小块(小卡片)

 

 近年几周,剪条、剪块的孩子人数也慢慢递增。

 

幼儿需求:锻炼手指精细动作的需求、或者获得更多物资进行交换、展示的需求(多比少好、交换贴纸的游戏),

教师需求:幼儿剪得越小,教师越讨厌——因为纸片多,收纳整理时间长,容易收拾不干净

幼儿需求:“碎纸片——我要玩拼图

 前几天收集作业时,15号又把“连连看”里的小图形剪成一条条、一块块,并且直接剪到书包的开口里,我立刻失去了收集他的作品的想法,无奈抱怨道:

“你怎么都剪成碎片了,我都没有办法收起来扫描了?”

“可是我今天就想拿回去玩!”15号一边剪一边解释说:

老师说:“你都剪成碎片了,还有什么好玩的?”

15号乐呵呵地回答:“可以拿回家拼图,我爸爸给我没了一盒子拼图,很多很多小块!”

老师:“哇,你的想法真不错!碎片还可以拼图,就是挺费时间的。”

“我会的,我家里就在玩拼图!”

思考:他的回答让我想了20号19号曾经的“剪碎片”行为、这两位男孩是不是也想到过“碎片拼图”的游戏呢?因此我想直接让孩子们做拼图。

图片来源:

 

 

 

 新建一个文件夹,放切割后的图片

 

WORD模板 

每个单元格右上角的方块是写学号的,便于锚定方向(减小难度) 


代码展示

'''
项目:运动矢量图的4*3格拼图
作者:阿夏
日期:2023年4月18日21:47
'''num=int(input('生成多少份(18人)\\n'))
Number=int(input('随机抽取几个图片(12个)\\n'))print('----------第1步:19张运动PNG图片*每张图片切割12张----------------')
# 源代码: https://blog.csdn.net/qq_34777982/article/details/125019068?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-125019068-blog-129622294.235^v29^pc_relevant_default_base3&spm=1001.2101.3001.4242.2&utm_relevant_index=4
# Python 裁剪九宫格图片 —— 筑梦之路
import sys
import os 
from PIL import Image
file_root = r"C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\运动拼图\\运动拼图" #要切的图片放的文件
fileList = []
n = 0
#读取文件列表
def read_bmp_file_list(path):for root, dirs, files in os.walk(path, topdown=False):for file in files:fileList.append(os.path.join(root, file))
#开始切图
def qie_tu(file_path):global nim = Image.open(file_path)# 图片的宽度和高度(原始图片大小1280 720)img_size = im.sizeprint("j小图片宽度和高度分别是{}".format(img_size))#切成512X512x = 0y = 0w = 320h = 240for j in range(0,3):for i in range(0,4):#region = im.crop((x, y, x+w*i, y+h*j))print(x+w*i, y+h*j,x+w*i+w, y+h*j+h)region = im.crop((x+w*i, y+h*j,x+w*i+w, y+h*j+h))#文件输出位置region.save(r"C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\运动拼图\\运动拼图1\\{name}.jpg".format(name='%03d'%n))n=n+1if __name__ == '__main__':read_bmp_file_list(file_root)for f in fileList:qie_tu(f)print('----------第2步:读取图片,写入模板----------------')
import os
from PIL import Image print('----------第1步:提取图片路径------------')path=[]
pr="C:\\\\Users\\\\jg2yXRZ\\\\OneDrive\\\\桌面\\\\运动拼图\\\\运动拼图1"
# 过滤:只保留png结尾的图片
imgs1=os.listdir(pr)
for img1 in imgs1:if img1.endswith(".jpg"):path.append(pr+'\\\\'+img1)
# 所有图片的路径
print(path)
# 216条路径(18张*12图)
print(imgs1)print('----------第2步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\运动拼图\\零时Word')print('----------第3步:随机抽取12张图片 ------------')import docx
from docx import Document
from docx.shared import Pt 
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
import randomimport os,time
import docx
from docx import Document
from docx.shared import Inches,Cm,Pt
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qnfrom docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColorfor nn in range(0,num):    # 18份doc = Document(r'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\运动拼图\\运动拼图模板.docx')
#     # 制作列表    # for z in range():        # 5行组合循环2次 每页两张表# 从左边图列表和右边图列表中抽取图片(12张图片,可能5个向左、7个向右边)# 24条里面0和12条是一组,2个里面随机抽1一个,1和13是一组,2个里面随机抽一个…… 抽出12个图片后r=[]    c=[]r.append(path[nn*12:nn*12+12])# print(r)# 再打乱顺序读取12个      for a in r:for b in a:c.append(b)print(c)figures=random.sample(c,Number)    # 12个图片随机写入12个  print(figures)# 单元格位置3*4格bg=[]for x in range(0,3):        # 3行for y in range(0,4):    # 4列ww='{}{}'.format(x,y)bg.append(ww)print(bg)   # ['00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01']table = doc.tables[0]          for t in range(len(bg)):   # 02pp=int(bg[t][0:1])    qq=int(bg[t][1:2])  # print(p)               k=figures[t]         print(pp,qq,k)# 写入图片run=doc.tables[0].cell(pp,qq).paragraphs[0].add_run()        # 在第1个表格中第2个单元格内插入国旗run.add_picture('{}'.format(k),width=Cm(4.5),height=Cm(3.8))table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.LEFT #居中  doc.save(r'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\运动拼图\\零时Word\\{}.docx'.format('%02d'%nn))   from docx2pdf import convert# docx 文件另存为PDF文件inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/运动拼图/零时Word/{}.docx".format('%02d'%nn)  # 要转换的文件:已存在outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/运动拼图/零时Word/{}.pdf".format('%02d'%nn)  # 要生成的文件:不存在# 先创建 不存在的 文件f1 = open(outputFile, 'w')f1.close()# 再转换往PDF中写入内容convert(inputFile, outputFile)print('----------第4步:把都有PDF合并为一个打印用PDF------------')# 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
import os
from PyPDF2 import PdfFileMerger
target_path =  'C:/Users/jg2yXRZ/OneDrive/桌面/运动拼图/零时Word'
pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
pdf_lst.sort()
file_merger = PdfFileMerger()
for pdf in pdf_lst:print(pdf)file_merger.append(pdf)
file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/运动拼图/(打印合集)运动拼图(4乘3张){}人共{}份).pdf".format(num,num))
file_merger.close()
# doc.Close()# print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/运动拼图/零时Word') #递归删除文件夹,即:删除非空文件夹

重点说明

一、切割图片多少份

PPT导出的图片JPG大小

宽:1260

高:720

 切割4*3份

 

二、单元格插入小图片

每12张图片一组,打乱顺序插入00-33的单元格格子里

目前只能先导出18张图,因此打印时,先打印一套18张,再打印1-10页,获得28份作业

教学尝试:

时间:2023年4月19日 11:30-11:50

人员:中6班 学号11、14、26 (3人)

材料:考虑难度,我先打印了3份,抽了几位数能力弱的孩子做实验——“开小灶”,先学起来了解流程。

 活动过程

 

 

 

 

结果:

1、3*4的12块拼图对第一次接触卡图的孩子有难度。教师指导

(1)提示摆放方向(有学号的右上角)

(2)提示左边6块是数字(左上)右边是汉字粗体(左下)、右边6块是细线(右侧)

结果:虽然教师指导了,但3位孩子都不同程度无法正确摆放图片方向(位置)(观察右上角的学号)

2、存在问题:

(1)第一次做卡片数量多,14号贴完后已经遗失了一块

 (2)白边条剪切费时,最好裁纸刀切掉(少剪多拼图)

1)6人一桌更没有多少空间操作了,所以尽量减少废纸的产生

2)人多容易卡片混在一起、12个格子写学号也会存在遗漏——卡片不能多

(3)黏贴纸上也也有灰色格子,幼儿以为也是要剪成卡片?所以最好预先把纸张一切二。

(4)图案复杂,幼儿不熟悉(汉字、数字、人物线条较多)

 (5)单元格里面的图片并没有撑满格,有白边,无法与其他卡片边缘对应(需要重叠覆盖)

3、学具优化

(1)从幼儿熟悉的图案开始——数字或字母

(2)数字、字母要填色灰色(不要空白)——幼儿看的清楚

(3)切割——一张纸切2半,左边是卡片、右边是黏贴纸

(4)切割——上面的卡片的三条白边切掉

(5)字母图案大小——2*3格=6格。做大写字母、一页(2份(包含字母和黏贴卡))

(6)学号数字图案大小——2*3*2=12格 做学号数字图片、一页(1份,包含字母和黏贴卡、需要确定人员)