【教学类-09-04】20240401细线迷宫图03(A4横版一页-4份横版)

作品展示:

45b7cc5650bf492bbe08001d9fd9cd71.png

背景需求:

【教学类-09-02】20240331细线迷宫图01(A4横版一页1份横版)-CSDN博客文章浏览阅读779次,点赞28次,收藏6次。【教学类-09-02】20240331细线迷宫图01(A4横版一页1份横版)https://blog.csdn.net/reasonsummer/article/details/137194011?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22137194011%22%2C%22source%22%3A%22reasonsummer%22%7Dicon-default.png?t=N7T8https://blog.csdn.net/reasonsummer/article/details/137194011?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22137194011%22%2C%22source%22%3A%22reasonsummer%22%7D

设计过程:

一、模板准备

2e69dc674d0142c781fa5602b1598616.png

d217e554f8bb4c629cb4f00c23a8ea67.png

二、代码解析:

147997585fb74584af7f73205e82c17f.pngbbe708fa147e47aaa3b082745f34e8e5.png

86255ec4fc894ffd899b1a4364526aeb.png

三、代码展示:

'''
批量制作细线条的迷宫图(A4横板一面4张横版)
作者:
1、落难Coder https://blog.csdn.net/u014297502/article/details/124839912
2、AI对话大师
3、阿夏
作者:2024年4月1日
'''num=int(input('几人(30人)\n'))print('-----------1、 生成细线迷宫-----------')
import sys
import matplotlib.pyplot as plt
from random import randint
import os# 保存多少张图? 一人4张图
for i in range(num*4):WIDTH  = 15HEIGHT = 10sys.setrecursionlimit(WIDTH * HEIGHT)def initVisitedList():visited = []for y in range(HEIGHT):line = []for x in range(WIDTH):line.append(False)visited.append(line)return visiteddef drawLine(x1, y1, x2, y2):plt.plot([x1, x2], [y1, y2], color="black")def removeLine(x1, y1, x2, y2):plt.plot([x1, x2], [y1, y2], color="white")def get_edges(x, y):result = []result.append((x, y, x, y+1))result.append((x+1, y, x+1, y+1))result.append((x, y, x+1, y))result.append((x, y+1, x+1, y+1))return resultdef drawCell(x, y):edges = get_edges(x, y)for item in edges:drawLine(item[0], item[1], item[2], item[3])def getCommonEdge(cell1_x, cell1_y, cell2_x, cell2_y):edges1 = get_edges(cell1_x, cell1_y)edges2 = set(get_edges(cell2_x, cell2_y))for edge in edges1:if edge in edges2:return edgereturn Nonedef initEdgeList():edges = set()for x in range(WIDTH):for y in range(HEIGHT):cellEdges = get_edges(x, y)for edge in cellEdges:edges.add(edge)return edgesdef isValidPosition(x, y):if x < 0 or x >= WIDTH:return Falseelif y < 0 or y >= HEIGHT:return Falseelse:return Truedef shuffle(dX, dY):for t in range(4):i = randint(0, 3)j = randint(0, 3)dX[i], dX[j] = dX[j], dX[i]dY[i], dY[j] = dY[j], dY[i]def DFS(X, Y, edgeList, visited):dX = [0,  0, -1, 1]dY = [-1, 1, 0,  0]shuffle(dX, dY)for i in range(len(dX)):nextX = X + dX[i]nextY = Y + dY[i]if isValidPosition(nextX, nextY):if not visited[nextY][nextX]:visited[nextY][nextX] = TruecommonEdge = getCommonEdge(X, Y, nextX, nextY)if commonEdge in edgeList:edgeList.remove(commonEdge)DFS(nextX, nextY, edgeList, visited)edgeList = initEdgeList()visited  = initVisitedList()DFS(0, 0, edgeList, visited)edgeList.remove((0, 0, 0, 1))edgeList.remove((WIDTH, HEIGHT-1, WIDTH, HEIGHT))figure = plt.figure(figsize=(14.85,10.5))  # 创建一个指定大小的图像窗口 29.7变成29 除以2ax = plt.Axes(figure, [0., 0., 1., 1.], frame_on=False)  # 创建一个坐标轴,覆盖整个图像窗口figure.add_axes(ax)ax.axis('off')  # 关闭坐标轴显示for edge in edgeList:drawLine(edge[0], edge[1], edge[2], edge[3])# 新建图片文件夹,保存所有生成的迷宫图path=r'C:\Users\jg2yXRZ\OneDrive\桌面\细线迷宫图图片'folder_path = path+r'\01迷宫图'os.makedirs(folder_path, exist_ok=True)plt.savefig(folder_path+r'\{}.png'.format('%02d'%i), dpi=400)  # 保存迷宫图像为maze.png,设置dpi参数调整图像质量# 生成60张图# 30*2	plt.close()  # 超过20张图片会提示占内存,所以关闭图像窗口释放内存
# plt.show()print('-----------2、 导入word,合并png----------')import os,time
from docx import Document
from docx.shared import Cm, RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
from docx2pdf import convert
from PyPDF2 import PdfMerger# 设置路径和文件夹名称folder_path ='迷宫图所有图片文件夹路径'
path=r'C:\Users\jg2yXRZ\OneDrive\桌面\细线迷宫图图片'
folder_path = path+r'\01迷宫图'
template_path = path+r"\03迷宫图细线(A4横版4张横图).docx"# 模板文件路径
output_path =path+r'\零时Word'# 生成docx和PDF的文件夹,最后要删除# 创建输出文件夹
if not os.path.exists(output_path):os.makedirs(output_path)n = 1filename=[]
# 遍历图片文件夹
for i in range(0, len(os.listdir(folder_path)), 4):filename.clear()for p in range(0,4):filename .append(os.listdir(folder_path)[i+p])        # i、i+1print(filename)# 打开模板文档doc = Document(template_path)# 获取第一个表格table = doc.tables[0]# 获取第一个表格c=0for a in range(0,2):for b in range(0,2):    table.cell(a,b).paragraphs[0].add_run().add_picture(os.path.join(folder_path, filename[c]), width=Cm(14.85), height=Cm(10.4))c+=1# 保存为Word文档doc.save(os.path.join(output_path, '{:02d}.docx'.format(n)))time.sleep(3)# 转换为PDFconvert(os.path.join(output_path, '{:02d}.docx'.format(n)), os.path.join(output_path, '{:02d}.pdf'.format(n)))n += 1
# 合并PDF
pdf_lst = [os.path.join(output_path, filename) for filename in os.listdir(output_path) if filename.endswith('.pdf')]
pdf_lst.sort()file_merger = PdfMerger()
for pdf in pdf_lst:file_merger.append(pdf)file_merger.write(path+fr'\03(打印合集)迷宫图(A4横版整页4份横图)({num}份).pdf')
time.sleep(5)file_merger.close()# 删除临时文件夹
import shutil
shutil.rmtree(output_path)
shutil.rmtree(folder_path)

四、作品展示:

c806ebcdc7cb45bd8747a7c1bbd94257.png

802fb988aafa41389dc627215d6cb43f.png71d3a53991d74074a0939715b3b27004.png

五、合并作品

e9d7f93bc215488d83d790fd1463c84f.png

c533d79e50c64d12bd600d6bba7e4425.png

db60ab77a83a47e585c261d91debdf15.png

这是一页4份横版的结构。最大问题是箭头错位。

后续思考,如何直接在图片上就添加起点、终点的”箭头“

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

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

相关文章

机器学习周记(第三十二周:文献阅读-时空双通路框架)2024.3.25~2024.3.31

目录 摘要 ABSTRACT 1 论文信息 1.1 论文标题 1.2 论文摘要 1.3 论文模型 1.3.1 Spatial Encoder&#xff08;空间编码器&#xff09; 1.3.2 Temporal Encoder&#xff08;时间编码器&#xff09; 2 相关代码 摘要 本周阅读了一篇运用GNN进行时间序列预测的论文。论文…

【数据处理包Pandas】分组及相关操作

目录 一、初步认识分组并查看分组信息&#xff08;一&#xff09;通过聚合函数查看分组信息&#xff08;二&#xff09;转换成列表查看所有组的信息&#xff08;三&#xff09;通过循环查看各组的名称和组中的数据信息&#xff08;四&#xff09;通过get_group()方法直接获得一…

【蓝桥杯练习】tarjan算法求解LCA

还是一道比较明显的求LCA(最近公共祖先)模型的题目,我们可以使用多种方法来解决该问题&#xff0c;这里我们使用更好写的离线的tarjan算法来解决该问题。 除去tarjan算法必用的基础数组&#xff0c;我们还有一个数组d[],d[i]记录的是每个点的出度&#xff0c;也就是它的延迟时间…

高级IO/多路转接-select/poll(1)

概念背景 IO的本质就是输入输出 刚开始学网络的时候&#xff0c;我们简单的写过一些网络服务&#xff0c;其中用到了read&#xff0c;write这样的接口&#xff0c;当时我们用的就是基础IO&#xff0c;高级IO主要就是效率问题。 我们在应用层调用read&&write的时候&…

YOLOv2

YOLOv2 论文介绍论文改进1. Batch Normalization2. High Resolution Classifier3. Convolutional With Anchor Boxes4. vgg16换成darknet-195. Dimension Clusters&#xff08;w h的聚类&#xff09;6 预测坐标7. passthrough8. 多尺度输入训练 损失函数 论文介绍 论文名字&am…

Educational Codeforces Round 133 (Rated for Div. 2) C. Robot in a Hallway

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e18, maxm 4e4 5; c…

多模态系列-综述Video Understanding with Large Language Models: A Survey

本文是LLM系列文章,针对《Video Understanding with Large Language Models: A Survey》的翻译。 论文链接:https://arxiv.org/pdf/2312.17432v2.pdf 代码链接:https://github.com/yunlong10/Awesome-LLMs-for-Video-Understanding 大型语言模型下的视频理解研究综述 摘要…

人工智能大模型+智能算力,企商在线以新质生产力赋能数字化转型

2024 年3月28 日&#xff0c;由中国互联网协会主办、中国信通院泰尔终端实验室特别支持的 2024 高质量数字化转型创新发展大会暨铸基计划年度会议在京召开。作为新质生产力代表性企业、数算融合领导企业&#xff0c;企商在线受邀出席大会主论坛圆桌对话&#xff0c;与行业专家共…

Lora人机界面开发 3

1 显示原理 液晶的形成&#xff1a;像水一样液晶介于固态和液态之间 偏光原理&#xff1a;两块偏光的栅栏角度相互垂直时光线就完全无法通过 内部结构&#xff1a;利用电场控制液晶分支的旋转 颜色深度 TFT开关的工作原理&#xff1a; 扫描线连接同一列所有TFT栅极电极&…

通过mapreduce程序统计旅游订单(wordcount升级版)

通过mapreduce程序统计旅游订单&#xff08;wordcount升级版&#xff09; 本文将结合一个实际的MapReduce程序案例&#xff0c;探讨如何通过分析旅游产品的预订数据来揭示消费者的偏好。 程序概览 首先&#xff0c;让我们来看一下这个MapReduce程序的核心代码。这个程序的目…

创新视角:探索系统产品可用性测试的前沿分类方法与实践应用

一、可用性测试概念 1、什么是可用性&#xff1f; 任何与人可以发生交互的产品都应该是可用的&#xff0c;就一般产品而言&#xff0c;可用性被定义为目标用户可以轻松使用产品来实现特定目标。 ISO9241/11中的定义是&#xff1a; 一个产品可以被特定的用户在特定的场景中&a…

跨越时空,启迪智慧:奇趣相机重塑儿童摄影与教育体验

【科技观察】近期&#xff0c;奇趣未来公司以其创新之作——“奇趣相机”微信小程序&#xff0c;强势进军儿童AI摄影市场。这款专为亚洲儿童量身定制的应用&#xff0c;凭借精准贴合亚洲儿童面部特征的AIGC大模型&#xff0c;以及丰富的摄影模板与场景设定&#xff0c;正在重新…

Ps:匹配颜色

匹配颜色 Match Color命令可以将一个图像的颜色与另一个图像的颜色相匹配。 Ps菜单&#xff1a;图像/调整/匹配颜色 Adjustments/Match Color 匹配颜色命令可匹配多个图像之间、多个图层之间或者多个选区之间的颜色&#xff0c;还可以通过更改亮度和色彩范围以及中和色痕来调整…

Day17-【Java SE进阶】特殊文本文件、日志技术

一、特殊文本文件 为什么要用这些特殊文件&#xff1f; 存储多个用户的&#xff1a;用户名、密码 存储有关系的数据&#xff0c;做为系统的配置文件做为信息进行传输 日志技术 把程序运行的信息&#xff0c;记录到文件中&#xff0c;方便程序员定位bug、并了解程序的执行情…

Java并发编程基础面试题详细总结

1. 什么是线程和进程? 1.1 何为进程? 进程是程序的一次执行过程&#xff0c;是系统运行程序的基本单位&#xff0c;因此进程是动态的。系统运行一个程序即是一个进程从创建&#xff0c;运行到消亡的过程。 在 Java 中&#xff0c;当我们启动 main 函数时其实就是启动了一个…

Windows进程监视器Process Monitor

文章目录 Process Monitor操作逻辑 Process Monitor Process Monitor是 Windows 的高级监视工具&#xff0c;是Filemon Regmon的整合增强版本&#xff0c;实时显示文件系统&#xff0c;注册表&#xff0c;网络活动&#xff0c;进程或线程活动&#xff0c;资料收集事件&#x…

阿里云弹性计算通用算力型u1实例性能评测,性价比高

阿里云服务器u1是通用算力型云服务器&#xff0c;CPU采用2.5 GHz主频的Intel(R) Xeon(R) Platinum处理器&#xff0c;ECS通用算力型u1云服务器不适用于游戏和高频交易等需要极致性能的应用场景及对业务性能一致性有强诉求的应用场景(比如业务HA场景主备机需要性能一致)&#xf…

记录一次threejs内存泄露问题排查过程

问题描述&#xff1a; 一个有关地图编辑的使用threejs的这样的组件&#xff0c;在多次挂载销毁后&#xff0c;页面开始卡顿。 问题排查&#xff1a; 1. 首先在chrome dev tool中打开performance monitor面板&#xff0c;观察 JS head size、DOME Nodes、Js event listeners数…

【C++】C++11类的新功能

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 默认成员函数 类成…

Java基于微信小程序高校体育场管理小程序

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…