【教学类-18-02】20221124《蒙德里安“红黄蓝黑格子画”-A4竖版》(大班)
创始人
2024-04-12 12:13:23
0

  效果展示:

单页效果

 

多页效果

 

 

 预设效果

 

背景需求:

2022年11月23日,作为艺术特色幼儿园,蒙德里安风格装饰在我们幼儿园的环境中。

 蒙德里安是几何抽象画派的先驱,以几何图形为绘画的基本元素,与德士堡等创立了“风格派”,提倡自己的艺术“新造型主义”。他认为艺术应根本脱离自然的外在形式,以表现抽象精神为目的,追求人与神统一的绝对境界,也就是现在我们熟知的“纯粹抽象”。

《大块红色、黄色、黑色、灰色和蓝色的构成》布面油画1921达拉斯艺术博物馆藏

       以前指导孩子们临摹过上面这幅画,孩子们画的还不错。这次我想随机生成一些不同的线条框架,让幼儿根据不同的线条组成的大小块面,自行尝试填色(色彩涂色符合幼儿的绘画能力特点)。

     制作随机线条画有点难度,我参考了很多CSDN上的“蒙德里安的梦想”“蒙德里安多位K”代码,要么看不懂代码写了什么意思,要么Python VScode不能运行、要么就是效果不符合我的需求。

    最终找到了“https://blog.csdn.net/qq_45027465/article/details/125315445”(随机绘画图形)的代码,通过反复测试,修改参数,基本满足了我需要的黑线格子样式。  

 WORD模板设置

Word位置

 页边距:上下左右0.7

纸张方向:竖版

 

 插入第一个表格 1行*4列,其中左侧三个单元格的大小:高度8.6*宽度6.13

 

设置表格的框线

 第一个表格和第二个表格之间要有一个空行:空行的字体大小间距设置

 蒙德里安线条图

 画框外框线的设置(加粗框线)

 

 

运行代码:

'''作者:阿夏
时间:2022年11月24日蒙德里安“红黄蓝黑格子画-竖版)
(A4横版,上面第一个格子做三角支撑,下面的第2个格子插入画作。))
'''# 代码出处:https://blog.csdn.net/qq_45027465/article/details/125315445
import matplotlib.pyplot as plt
import matplotlib.patches as pch
import matplotlib.tri as tri
import numpy as np
import random
from cv2 import cv2
import os
import gcprint('-----------------第1部分:生成蒙德里安线正方形线条图-------------------')n=int(input('请输入画布尺寸正方形(18Cm)\n'))
nn=int(input('一共要几张图(30)\n'))
figLong = n  # 19.2  # 的长k
figWide = n   # 18.3 的宽
h=input('横版还是竖版?\n')color = ['b', 'r', 'g', 'y', 'c', 'm','w','k']# 蓝色,红色、绿色、黄色、青、品红、白、黑def FigRect(ax,num):  # 画矩形# 以下代码是做随机矩形。for i in range(num):# l=figLong# w=figWidelong = random.uniform(figLong,figLong*5)  # 矩形的长为0.5-3之间wide = random.uniform(figWide,figWide*5)  #X = random.uniform(0, figLong - long)Y = random.uniform(0, figWide - wide)# X =figLong - long# Y =figWide - widea = random.randint(7, 7)        # 0,0蓝色  11红  22绿 33黄 44浅蓝、55浅紫 66白 77黑        # 线条色彩,这里只用7,黑色rect = pch.Rectangle(xy=(X, Y), width=wide, height=long, edgecolor=color[a], facecolor=color[a], fill=False,linewidth=20)                            #  线条宽度ax.add_patch(rect)# 下面代码是做画框的边框(18*18)rect1 = pch.Rectangle(xy=(0, 0), width=figWide, height=figLong, edgecolor=color[a], facecolor=color[a], fill=False,linewidth=20)                            #  线条宽度ax.add_patch(rect1)if num != 0:del ax, rectgc.collect() def main():figNum = nn  # 画图数量imgNum = 80  # 每张图的图形最多数量for i in range(figNum):fig, ax = plt.subplots(figsize=(figLong, figWide))a = random.randint(1, 1)# 0,0=黑色背景 1,1白色背景if a == 0:X = np.arange(0, figLong, 20)plt.fill_between(X, 0, figWide, color='k') for j in range(0,imgNum):b = random.randint(0, 0)# b=3if b==0:FigRect(ax, 1)                # 图形粗密name = 'C:/Users/jg2yXRZ/OneDrive/桌面/蒙德里安/线条图/' + str(i) + '.jpg'plt.xlim(xmin=0, xmax=figLong)plt.ylim(ymin=0, ymax=figWide)plt.axis('off')plt.subplots_adjust(top=1, bottom=0, left=0, right=1, hspace=0, wspace=0)plt.margins(0, 0)plt.savefig(name, dpi=30)# plt.show()        # 只显示一次,并且不能自动关闭plt.clf()plt.close()del fig, axgc.collect()# 模拟按键Alt+F4# plt.pause(1)if __name__ == '__main__':main()print('-----------------第2部分:导入Word,合成PDF-------------------')import os,random
print('----------第1步:提取所有的蒙德里安线条图的路径------------')path=[]
for i in range(0,nn):    # 一共有18张p=r"C:\Users\jg2yXRZ\OneDrive\桌面\蒙德里安\线条图\{}.jpg".format(i)path.append(p)  
print(path)
# ['C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\1.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\2.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\3.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\4.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\5.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\七巧 
# 板\\线条图\\6.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\7.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\8.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\9.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\10.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\11.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\12.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\13.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\14.jpg', 
# 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\15.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\16.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图
# \\17.jpg', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\蒙德里安\\线条图\\18.jpg']print('----------第2步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\蒙德里安\零时Word')print('----------第3步:把30个图片分别插入30个Word内 ------------')from win32com.client import constants,gencache
from win32com.client.gencache import EnsureDispatch
from win32com.client import constants # 导入枚举常数模块
import os,timeimport 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 nnn in range(0,len(path)):# word = gencache.EnsureDispatch('Word.Application')doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\蒙德里安\蒙德里安模板({}).docx'.format(h))# 打开带docx模板(这个模板有页脚的页码,阿夏认为页码是必须的)table = doc.tables[1]          # 一共有1个表格    k=path[nnn]                  # 提取list图案列表里面每个图形  t=索引数字 print(k)  run=doc.tables[1].cell(0,0).paragraphs[0].add_run()        # 在第一个表格中的每个单元格的第一行插入信息run.add_picture('{}'.format(k),width=Cm(18),height=Cm(18))   # 插入,k=所在路径。单元格大小有限,每张原始尺寸8.744CM,插入的大小最多4CM       table.cell(0,0).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中     # doc.Save()# 把有空格的1.docx保存ndoc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\蒙德里安\零时Word\{}.docx'.format('%02d'%nnn))       from docx2pdf import convert# docx 文件另存为PDF文件inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/蒙德里安/零时Word/{}.docx".format('%02d'%nnn)  # 要转换的文件:已存在outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/蒙德里安/零时Word/{}.pdf".format('%02d'%nnn)  # 要生成的文件:不存在# 先创建 不存在的 文件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/桌面/蒙德里安/(打印合集)纯色蒙德里安-{}({}份).pdf".format(h,nn))
file_merger.close()
# doc.Close()# print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/蒙德里安/零时Word') #递归删除文件夹,即:删除非空文件夹

重点说明

1、运行参数

 

 2、运行过程:

生成30张随机线条图。

生成图片所在路径

  

 3、重要设置:

如何大量随机出现的长方形线条(有些参数的意思我也不太理解)

 

 把图片导入Word

 

 

 效果再展示:

感悟:

1、竖板《蒙德里安》更符合幼儿操作规律

(1)日常学习都是先写学号名字,再开始制作,与横版《蒙德里安》相比,竖版可以让幼儿从左到右、从上到下的规律,先完成个人信息填写、然后涂上指定的颜色。接着绘画红黄蓝黑格子。符合书写顺序

(2)先写信息,在进行裁剪,黏贴。符合先写画、后剪贴的学习思路,减少遗漏

 2、竖板《蒙德里安》更符合操作台空间布局

平时活动都是准备30份A4学具,但是通常幼儿人数在23-26人之间,幼儿都会把多余的纸上上交,

老师:“放中间吧,万一有同学先完成了,可以在做一张!“

幼儿1:“可是桌子上放不下了”

幼儿2:“放着搞不清楚是谁的”

显然5-6人共用课桌时,大班幼儿能明显感受到操作空间有限——除了A4纸、还有记号笔剪刀胶水的笔筒及整盒蜡笔需要占空间。

因此在设计纸类学具投放时,要么把A4切成2份,要么把A4转换成正方形,如果必须要用整张A4,最好就是竖版排列。

横版&竖版

 

 教学展示:

时间:2022年11月2X日 下午15:00-15:30

班级:大1班

人数:人

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...