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

news2025/4/8 14:11:04

 

 

 

背景需求:

一个月的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 n
    im = Image.open(file_path)
    # 图片的宽度和高度(原始图片大小1280 720)
    img_size = im.size
    print("j小图片宽度和高度分别是{}".format(img_size))
    #切成512X512
    x = 0
    y = 0
    w = 320
    h = 240
    for 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+1
 
if __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 random

import 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 qn

from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor


for 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)):   # 02
        pp=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份,包含字母和黏贴卡、需要确定人员)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Idea+maven+spring-cloud项目搭建系列--13 整合MyBatis-Plus多数据源dynamic-datasource

前言:对于同一个系统,不同的租户需要自己独立分隔的数据库(每个数据库的表结构可以是相同的),同时也要支持跨数据源的查询;并且支持分布式事务,如果这里不使用分库分表插件,需要怎样…

python-day4(字符串、列表、生成式和生成器、使用元组、集合、字典)

字符串和常用数据结构 简单用法 所谓字符串&#xff0c;就是由零个或多个字符组成的有限序列&#xff0c;一半记为sa1a2a3…an(0<n<∞)。在python中&#xff0c;如果我们把单个或多个字符用单引号或者双引号包围起来&#xff0c;就可以表示一个字符串。 s1 hello, wo…

【生物信息】用隐马尔可夫模型对生物序列进行建模

文章目录 Modeling biological sequences with HMMSParsing longer sequences. 举例子Our frst HMM: Detecting GC-rich regionsRunning the model: Probability of a sequence 维特比算法 Viterbi一个摸球例子回到课堂 求解参数 来自Manolis Kellis教授的课 教了隐马尔可夫在基…

FPGA开发之HDMI Transmitter接口设计

HDMI简介&#xff1a; High Definition Multimedia 高清多媒体接口&#xff0c;一种全数字化视频和声音发送接口&#xff0c;可以发送未压缩的音频及视频信号 物理接口&#xff1a; 电气介绍&#xff1a; TMDS&#xff08;Transition Minimized Differential Signaling&#x…

自定义类型——位段

什么是位段&#xff1f; 位段又叫做位域&#xff0c;具体是一种可以把数据以位的形式紧凑的存储&#xff0c;并允许程序员对此结构位进行操作的数据结构 当结构体的成员变量定义之后浪费了较大的空间 &#xff08;比如int a 2&#xff0c;则浪费了30个比特位的空间&#xff0…

Mail 服务器

Mail 服务器 1. 概念及协议2. 工具2.1 Postfix2.2 dovecot2.3 bind 3. 搭建3.1 DNS服务设置3.2 安装配置 postfix3.3 安装配置 dovecot 4. foxmail验证 1. 概念及协议 邮件服务器也采用的是C/S工作模式&#xff0c;通过SMTP,POP,IMAP协议来是实现邮件的发送和接收的。 SMTP 的…

Java入坑之IO操作

目录 一、IO流的概念 二、字节流 2.1InputStream的方法 2.2Outputstream的方法 2.3资源对象的关闭&#xff1a; 2.4transferTo()方法 2.5readAllBytes() 方法 2.6BufferedReader 和 InputStreamReader 2.7BufferedWriter 和 OutputStreamWriter 三、路径&#xff1a;…

Qt5 编译QtXlsx并添加为模块[Windows]

00.QtXlsx是什么&#xff1f;能干什么&#xff1f; QtXlsx是一个可以读写Excel文件的库。它不需要Microsoft Excel&#xff0c;可以在Qt5支持的任何平台上使用。 可以创建、读取、编辑.xlsx文件。 01.如何编译&#xff1f; 1.1编译环境&#xff1a; Windows10平台&#xff1b;…

es6笔记-let、const、var的区别

let、const、var的区别 变量提升 var 声明的变量存在变量提升,在声明前可以调用&#xff0c;直为undefindconsole.log(a); var a 1;相当于&#xff1a;var a; console.log(a); a 1;let和const不存在变量提升&#xff0c;变量要在声明前调用&#xff0c;否则报错console.log(a…

DNS服务器配置

一&#xff0c;正向解析 1>安装软件bind 提供DNS服务的软件叫bind&#xff0c;服务名是named [rootserver ~]# yum install bind -y 2>对三个配置文件进行修改 - /etc/named.conf : 主配置文件&#xff0c;共59行&#xff0c;去除注释和空行之和有效行数仅30行左右&…

Golang程序报错:fatal error: all goroutines are asleep - deadlock

文章目录 1.原始代码2.错误原因分析3. 解决方案4. 经验总结5. 练习 完整的报错信息如下&#xff1a; fatal error: all goroutines are asleep - deadlock!goroutine 1 [chan receive]: main.(*WorkerManager).KeepAlive(0xc000088f60)/root/go_workspace/studygoup/05.go:66 0…

Doris(7):数据导入(Load)之Routine Load

例行导入功能为用户提供了义中自动从指定数据源进行数据导入的功能 1 适用场景 当前仅支持kafka系统进行例行导入。 2 使用限制 支持无认证的 Kafka 访问&#xff0c;以及通过 SSL 方式认证的 Kafka 集群。支持的消息格式为 csv 文本格式。每一个 message 为一行&#xff0c;…

【Cpp】手撕搜索二叉树(K模型)

文章目录 二叉搜索树概念详解二叉搜索树的概念二叉搜索树的操作(大致思路)二叉搜索树的查找二叉搜索树的插入二叉搜索树的删除(最重点) 手撕搜索二叉树代码结点定义(以key型为例,KV型将在下一篇博客中介绍)树结构定义深拷贝构造函数与构造函数赋值重载析构函数遍历(结果按从小到…

软件测试的当下分析

在没有清晰能见度的情况下驾驶汽车不仅非常危险&#xff0c;也十分鲁莽。这会让我们和我们周边的人随时面临着碰撞、受伤、甚至死亡的风险。如果不能看到前方的道路&#xff0c;我们就无法预测潜在的危险或障碍&#xff0c;从而无法做出明智的决定并采取适当的行动。 同样&…

什么是ddos攻击?ddos攻击有哪些危害?

一、什么是 DDoS 攻击&#xff1f; DDoS 是 Distributed Denial of Service 的缩写&#xff0c;翻译成中文就是 “分布式拒绝服务”。DDoS 攻击将处于不同位置的多个计算机联合起来作为攻击平台&#xff0c;对一个和多个目标发动 DDoS 攻击&#xff0c;从而成倍提高攻击威力。…

分布式系统概念和设计-进程通信中的(网络API设计)

分布式系统概念和设计 进程间通信 中间件层 请求-应答协议 编码和外部数据表示 因特网协议的API 进程间通信的特征 一对进程间进行消息传递需要两个消息通信操作的支持&#xff08;send和receive&#xff09;&#xff0c;用于定义目的地和消息的定义。 为了能够使一个进程能…

煤化工废水除总氮除硬度,矿井水除砷除氟解决方案

随着环保标准的提升&#xff0c;大部分煤矿企业对矿井水要求执行地表三类水标准&#xff0c;氟化物要求小于1mg/l&#xff0c;这类项目存在体量大、氟含量低、水质偏差等特点。 RO工艺制备纯水是煤化工行业生产的一个辅助环节&#xff0c;会产生大量的浓盐水&#xff0c;由于浓…

十五分钟带你学会 Electron

文章目录 什么是 Electron为什么要选择 Electron安装 Electron桌面CSDN实战Electron 基础配置Electron 进程主进程渲染进程主进程与渲染进程的区别主进程与渲染进程的通信 Electron 跨平台问题Electron 部署打包应用程序发布应用程序 Electron 跨端原理总结 什么是 Electron E…

NE555 Motor LED Chaser

文章目录 1.前言2.资料下载 1.前言 这个是从YouTube上搬运来的&#xff0c;如图所示 2.资料下载 所需材料 #1# 10k resistor 1 #2# 10k variable resistor 1 #3# 10uf capacitor 1 #4# 3mm blue led 4 #5# 3mm yellow led 4 #6# 3mm red led 4 #7# 3mm green led 4 #8# 3mm…

【Linux网络】网络基础(TCP/IP协议栈、局域网通信原理、封装与解包、有效载荷分用)

文章目录 1、认识网络1.1 重新看待计算机结构1.2 网络的问题1.3 初识网络协议1.4 TCP/IP五层结构 2、网络与操作系统2.1 网络和OS的关系2.2 局域网&#xff08;以太网&#xff09;通信原理和MAC地址2.3 主机的跨网络2.4 有效载荷的分用 1、认识网络 在早年计算机之间是相互独立…