【教学类-55-01】20240511图层顺序挑战(四格长条纸)(4*4)和“手工纸自制参考图”

作品展示

背景需求

空间思维图层挑战2|逻辑推理|空间想象力 - 小红书 (xiaohongshu.com)icon-default.png?t=N7T8https://www.xiaohongshu.com/discovery/item/62cbf6c60000000010026aa0?app_platform=android&ignoreEngage=true&app_version=8.35.0&share_from_user_hidden=true&type=video&author_share=1&xhsshare=WeixinSession&shareRedId=ODszMTs4Nk82NzUyOTgwNjg3OTlHS0xC&apptime=1715478298

我分析一下,这种4*4的格子,横向4或3条长条纸,纵向3或4条长条纸,一共7条不同颜色的四格长纸条。

这么复杂的代码,当然用AI来写了。请AI对话大师,反复写代码的过程用了大概用了1天。

代码展示:

'''
项目:图层顺序挑战-四格长条纸(7张),4*4单元格随机叠放顺序
作者:AI对话大师,阿夏
时间:20240511
'''from PIL import Image, ImageDraw
import os,random
import itertoolsprint('--------1、制作图片-----------')
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\重叠纸条'folder_path = path + r'\jpg'
os.makedirs(folder_path, exist_ok=True)colors = ['red', 'Yellow', 'green', 'orange', 'lightgreen', 'skyblue','Pink']for ii in range(1,25):# 创建画布canvas_width = 800 canvas_height = 800canvas_color = (255, 255, 255)  # 白色背景line_color = (0, 0, 0)  # 黑色线条line_width = 0margin = 100  # 边距canvas = Image.new('RGB', (canvas_width, canvas_height), canvas_color)draw = ImageDraw.Draw(canvas)# 计算单元格大小和绘制区域num_rows = 4num_cols = 4cell_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# rowcol_all=[]row1=[]for a1 in range(0,num_rows):row1.append(a1)   # print(row1)     row2 = random.sample(row1, 4)# print(row2)row3 = random.sample(row1, 3)# print(row3)rowcol_all=row2+row3# 随机颜色color = random.sample(colors,7)print(color)# 绘制单元格和正方形,并填充颜色for row in range(num_rows):for col in range(num_cols):x = start_x + col * cell_sizey = start_y + row * cell_sizesquare_size = cell_size            # 前行4 后列3# 2      if row == rowcol_all[0]:  # 第2行填充红色square_color = color[0]if col == rowcol_all[4]:  # 第1列填充黄色square_color = color[1]if row == rowcol_all[1]:  # 第3行填充紫色square_color = color[2]if col == rowcol_all[5]:  # 第2列填充黑色square_color = color[3]if row == rowcol_all[2]:  # 第1行填充粉色square_color = color[4]if col == rowcol_all[6]:  # 第4列填充蓝色square_color = color[5]if row == rowcol_all[3]:  # 第4行填充绿色square_color = color[6]draw.rectangle([(x, y), (x + square_size, y + square_size)], fill=square_color, outline=line_color, width=line_width)# 保存图像彩色图片canvas.save(folder_path + fr'\{ii:02d}.png')rowcol_all.clear()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()

终端显示:

结果呈现

虽然做了图片合并PDF,但是我没有打印。

一、制作参考图:

问题:本来参考图想用彩色打印的,但是比较浪费墨,放弃

解决1:用蜡笔涂色——不一定正好有打印的7种颜色、蜡笔画的边线不整齐,放弃

解决2:用丙烯马克笔——不一定正好有打印的7种颜色、画笔费墨(容易用光颜色)涂色容易出线框。

解决3:用彩色手工纸——先用裁纸机将切好纸片大小,然后黏贴。

小结:用彩色手工纸拼贴参考图,确保了7种颜色的统一性。不涂色,不裁剪,精准性、美观性更强。

二、制作参考图的空白模板

首先需要有一个空白模板,我生成24张图片,就预设A4一页上有6个参考图

代码展示:

'''
项目:图层顺序挑战-四格长条纸4*4单元格空白模板制作,顶部有题目序号
作者:AI对话大师,阿夏
时间:20240511
'''import os,time
import shutil
from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
from PyPDF2 import PdfMergerdef set_font(run, font_name):rPr = run._r.get_or_add_rPr()rFonts = rPr.get_or_add_rFonts()rFonts.set(qn('w:eastAsia'), font_name)path = r'C:\Users\jg2yXRZ\OneDrive\桌面\重叠纸条'
folder_path = os.path.join(path, 'jpg')  # 文件夹路径name = []# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):# 判断文件是否为图片文件if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):# 输出图片文件的名称n = f'空间思维(4格)-{filename[:-4]}(     )'name.append(n)# 将名称列表分成每组6个元素
name_groups = [name[i:i+6] for i in range(0, len(name), 6)]
print(name_groups)# 读取模板.docx的第一个表格
doc_path = os.path.join(path, '模板.docx')
doc = Document(doc_path)
table = doc.tables[0]out_path = os.path.join(path, 'lingshi')
os.makedirs(out_path, exist_ok=True)# 添加自定义字体
custom_font_path = r"C:\Windows\Fonts\simhei.ttf"  # 替换为正确的字体文件路径
font_name = "SimHei"  # 替换为正确的字体名称 
doc.styles['Normal'].font.name = font_name# 在指定单元格插入文本
rows = [0, 0, 5, 5, 10, 10]
cols = [0, 4, 0, 4, 0, 4]for texts in range(len(name_groups)):for i in range(len(rows)):row = rows[i]col = cols[i]text = name_groups[texts][i]cell = table.cell(row, col)cell.text = text# 设置文本样式paragraph = cell.paragraphs[0]run = paragraph.runs[0]run.font.name = font_namerun.font.bold = Truerun.font.size = Pt(12)paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTERfrom docx2pdf import convert# 将已存在的DOCX文件另存为PDFnew_doc_path = os.path.join(out_path, f'{texts+1:02d}.docx')doc.save(new_doc_path)pdf_path = os.path.join(out_path, f'{texts+1:02d}.pdf')convert(new_doc_path, pdf_path)time.sleep(1)from PyPDF2 import PdfFileMerger
import shutil# 获取out_path文件夹中的所有PDF文件路径
pdf_files = [file for file in os.listdir(out_path) if file.endswith('.pdf')]# 创建一个PdfFileMerger对象
merger = PdfFileMerger()# 逐个添加PDF文件到合并器中
for file in pdf_files:pdf_path = os.path.join(out_path, file)merger.append(pdf_path)# 执行合并操作并保存为新的PDF文件
merged_pdf_path = os.path.join(path, '(重叠纸条4宫格24张.PDF')
merger.write(merged_pdf_path)
merger.close()# 删除out_path文件夹及其内容
shutil.rmtree(out_path)

生成结果

幼儿自制图层挑战(长条)参考图

时间::2024年5月11日(周六)

班级:中4

人数:2人(传染病隔离)

1、材料准备:

把空白参考图打印,切割成小张

2、切割手工纸1(做题时的大号纸条)

2、切割手工纸2(做参考图时的小号纸条)

15Cm纸条切成8和7,宽度都是2CM

二、幼儿制作:

24张参考图都完成后,参考图和操作彩色纸条都进行塑封和裁剪(圆角),

存在问题:

1、叠放顺序相同:

在幼儿用小纸片黏贴参考图的过程中,我发现有两张图片的叠放顺序相同

因此代码需要进一步研究,排除重复

2

2、只有4行3列填充样式

3、无法增加一整个矩形框(边框线条粗细0)

目前代码显示都是一个单元格的颜色填充,如果添加边框粗细2磅,会是一个单元格出现黑色边框,而不是整个一行或一列加上一整条黑色边框。

我想要的效果是一下这样的:

思路:通过查找行列第1格的“左上角坐标”画一个新的矩形填充颜色,层层叠加。

后续重点:

1、排除重复的重叠方式

2、色块做成长矩形

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

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

相关文章

Django项目运行报错:ModuleNotFoundError: No module named ‘MySQLdb‘

解决方法: 在__init__.py文件下,新增下面这段代码 import pymysql pymysql.install_as_MySQLdb() 注意:确保你的 python 有下载 pymysql 库,没有的话可以使用 pip install pymysql安装 原理:用pymysql来代替mysqlL…

探索人类意识的多样性:从安全感到语感、节奏感的差异

在我们的日常生活中,人类意识表现出多种多样的特点,这些特点往往与个体的天生禀赋和生活经历密切相关。从安全感到语感、节奏感,每个人的表现都有所不同。今天,让我们一起来探索这些差异,感受人类意识的多样性。 首先&…

stable diffusion WebUi本地安装

一、stable diffusion 介绍 Stable Diffusion是一种先进的文本到图像的生成模型,它可以根据给定的文本输入生成高度逼真的图像。 Stable Diffusion模型因其高效性和灵活性,在AI图像生成领域引起了广泛关注,并在实际应用中展示了其强大的能力…

论文盲审吐槽多,谁给盲审不负责的老师买单?如何看待浙江大学「一刀切」的研究生学位论文双盲评审制度?

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验,帮助大家尽早适应研究生生活,尽快了解科研的本质。祝一切顺利!—…

day6Qt作业

人脸识别系统 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <opencv2/opencv.hpp> #include <iostream> #include <math.h> #include<opencv2/face.hpp> #include <vector> #include <map> #include <QMessag…

美颜滤镜SDK解决方案,稳定可靠,易于集成

高质量的视觉体验已成为企业吸引用户、提升品牌形象的关键&#xff0c;美摄科技凭借其领先的美颜滤镜SDK技术&#xff0c;为企业提供了从人像美颜到多元场景处理的全方位解决方案&#xff0c;助力企业轻松实现视觉升级。 一、强大能力&#xff0c;覆盖多场景 美摄科技美颜滤镜…

MIPI DPHY HS传输模式SoT和EoT的传输值

目录 1. 高速传输模式的传输序列 2. SoT传输序列 3. EoT传输序列 1. 高速传输模式的传输序列 Mipi DPHY的高速数据传输&#xff08;HST&#xff1a;High Speed Transmission&#xff09;以突发&#xff08;Burst&#xff09;方式发生。 为了帮助接收机同步&#xff1a; (1) …

Vue3实战笔记(13)—pinia安装笔记

文章目录 前言安装和配置pinia总结 前言 Pinia 是 Vue 的专属状态管理库&#xff0c;它允许你跨组件或页面共享状态。 Pinia是一个轻量级的状态管理库&#xff0c;它专注于提供一个简单的API来管理应用程序的状态。相比之下&#xff0c;Vuex是一个更完整的状态管理库&#xf…

现代制造之数控机床篇

现代制造 有现代技术支撑的制造业&#xff0c;即无论是制造还是服务行业&#xff0c;添了现代两个字不过是因为有了现代科学技术的支撑&#xff0c;如发达的通信方式&#xff0c;不断发展的互联网&#xff0c;信息化程度加强了&#xff0c;因此可以为这两个行业增加了不少优势…

【信号与槽机制】

信号与槽机制 &#x1f31f; 信号函数&#x1f31f; 槽函数&#x1f31f; 连接函数&#x1f338; QObejct::connect函数剖析&#x1f31f; 官方文档中给出的定义&#x1f31f;《Qt 5.9 C开发指南》中的定义 &#x1f31f; 信号函数 信号是一种特殊的成员函数&#xff0c;用于在…

2024数维杯数学建模C题思路代码

2024年数维杯&电工杯思路代码在线文档​https://www.kdocs.cn/l/cdlol5FlRAdE 这道题想要做出好的结果&#xff0c;必须要结合插值法和分布函数来做&#xff0c;主要还是因为勘探点太少&#xff0c;直接用插值法效果不太好&#xff0c;以下是我做的&#xff0c;函数分布可…

Spring boot使用一个接口实现任意一张表的增删改查

Spring boot使用一个接口实现任意一张表的增删改查 文章目录 Spring boot使用一个接口实现任意一张表的增删改查0、讲解部分1、准备工作2、代码实现前后端对接包装类model部分ControllerServiceMapperMapper的xml部分 本文旨在&#xff1a; &#xff08;需要做额外的操作创建对…

Applied Spatial Statistics(五)线性回归 I

Applied Spatial Statistics&#xff08;五&#xff09;线性回归 I 该笔记本演示了&#xff1a; 线性回归系数估计在假设下是无偏的如何围绕系数估计构建 bootstrap 置信区间残差图Q-Q图 1. 线性回归系数估计在假设下是无偏的 import numpy as np import matplotlib.pyplot…

C# 集合(五) —— Dictionary类

总目录 C# 语法总目录 集合五 Dictionary 1. Dictionary 1. Dictionary 字典是键值对集合&#xff0c;通过键值对来查找 Dictionary和Hashtable的区别是Dictionary可以用泛型&#xff0c;而HashTable不能用泛型 OrderedDictionary 是按照添加元素时的顺序的字典&#xff0c;是…

5分钟速通大语言模型(LLM)的发展与基础知识

✍️ 作者&#xff1a;哈哥撩编程&#xff08;视频号同名&#xff09; 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 &#x1f3c6; 推荐专栏&#xff1a; &#x1f3c5; 程序员&#xff1a;职场关键角色通识宝…

N5183B是德科技n5183b信号源

181/2461/8938产品概述&#xff1a; 简  述&#xff1a; N5183B 频率范围&#xff1a;9 kHz 至 20 GHz&#xff0c;具有 AM、FM、相位调制功能。N5183B MXG X 系列微波模拟信号发生器拥有 9 kHz 至 40 GHz 的频率覆盖范围&#xff0c;以及接近 PSG 级别的相位噪声性能&…

3588 pwm android12 的操作

问题&#xff1a; 客户需要在android12 的界面上操作板卡上的 PWM 蜂鸣器设备。 过程&#xff1a; 1 了解一下 3588 android12 源码的 关于PWM 的驱动。 设备树找不到 pwm 但是&#xff0c; 还不知道&#xff0c;android12 最终包含的 设备树是哪个&#xff0c;但是经过我的…

ctfshow SSRF 351-358

做题前,需要先学习关于ssrf漏洞的相关知识 小注意: 当使用 file_get_contents() 函数访问远程 URL 时&#xff0c;它会尝试获取该 URL 指向的资源的内容&#xff0c;并将内容以字符串的形式返回。 如果 b.php 文件是一个 PHP 文件&#xff0c;它包含的内容取决于该 PHP 文件…

素数伴侣最大组合数

若两个正数之和为素数&#xff0c;则这两个数称之为“素数伴侣”。利用此特性找出给定数组中最大的“素数伴侣”对数。 (笔记模板由python脚本于2024年05月11日 18:17:40创建&#xff0c;本篇笔记适合熟悉基本编程且了解素数的coder翻阅) 【学习的细节是欢悦的历程】 Python 官…

阿里云ECS服务器实例挂载数据盘步骤(磁盘自动挂载.、访问挂载点)

阿里云ECS服务器实例挂载数据盘步骤 相关指令 df -h 查看磁盘空间 du -sh * 查看使用内存大小1.磁盘自动挂载 首先登录阿里云ECS服务器&#xff0c;通过 df -h 命令查看当前磁盘挂载情况 通过 fdisk -l 命令查看磁盘情况&#xff0c;可以发现有两个盘&#xff1a; 系统盘 …