【教学类-89-06】20250220新年篇05——元宵节灯笼

背景需求:
每年元宵、国庆都回带孩子做灯笼。用python对"对折灯笼“的纸模进行不同图案的填充(区分物权)
【教学类-39】A4红纸-国旗灯笼纸模(庆祝中华人民共和国成立74周年)_a4 打印 灯笼-CSDN博客文章浏览阅读1.1k次。【教学类-39】A4红纸-国旗灯笼纸模(庆祝中华人民共和国成立74周年)_a4 打印 灯笼https://blog.csdn.net/reasonsummer/article/details/133420000?sharetype=blogdetail&sharerId=133420000&sharerefer=PC&sharesource=reasonsummer&spm=1011.2480.3001.8118

大班孩子剪灯笼纸模水平不一,对”钢琴键”对称剪,也有很多剪断情况。


“剪的我手都酸了!”

孩子们即使做出来,灯笼外圈的一根根线也不是完全”圆圈状“,而是几根一簇并排的样式。



这里就有两个问题:
1、十几根的裁剪线条,并不是和所有的孩子——是否可以做少一点的线条。
2、如果内部不是“圆柱”,而是“棱柱”,边线的环形弯曲效果是不是更好。——制作多边形灯笼。
思路一:在word里手动做了3-8边形

做一个三变形的模板,然后复制四边形,手动拆分表格,一个一个平均列……7个模板做了很长时间



然后用把6个做成pdf(第1次没有考虑3边形,从4-8,圆形)
'''
元宵节多边形灯笼word手工制作,转打印PDF
星火讯飞、阿夏
20251202
'''import os,time
from docx import Document
from PIL import Image
from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT
from PyPDF2 import PdfFileMerger
from docx.shared import Cm # Import Cm here
import pikepdf
import os
from docx import Document
from PyPDF2 import PdfFileMerger
from docx2pdf import convert
from pdf2image import convert_from_path
import pikepdf# 定义文件夹路径
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250216元宵灯笼'
folder_123 = path + r'\图纸'temp_folder = path + r'\零时'
output_folder = os.path.dirname(folder_123)
os.makedirs(temp_folder, exist_ok=True)# 获取所有docx文件
docx_files = [f for f in os.listdir(folder_123) if f.endswith('.docx')]
print(docx_files)# 将每个docx文件转换为PDF
for docx_file in docx_files:doc_path = os.path.join(folder_123, docx_file)pdf_path = os.path.join(temp_folder, docx_file.replace('.docx', '.pdf'))convert(doc_path, pdf_path)time.sleep(2)print(f"所有PDF文件已合并并转换为图片,保存在 {images_folder}")import shutil
shutil.rmtree(temp_folder)# # 合并所有的PDF文件
# pdf_files = [f for f in os.listdir(temp_folder) if f.endswith('.pdf')]
# merger = PdfFileMerger()
# for pdf_file in pdf_files:
# pdf_path = os.path.join(temp_folder, pdf_file)
# merger.append(pdf_path)
# output_pdf_path = os.path.join(path, f'元宵节灯笼{docx_files}张.pdf')
# merger.write(output_pdf_path)
# merger.close()
# time.sleep(5)#




打印出来我随机挑了,两个纸膜制作。并给中班孩子展示制作过程。并提到
“可以选四边形、五边形、六边形”
“这个是立体的很难!”
出生牛犊的孩子们就热烈讨论“我要四边形的!”我要三边形的“。”好难啊!“”什么时候做?“
图片后补
考虑到之前几次的大班”元宵灯“制作的情况:孩子们初次做根本不理解制作方法(裁剪、折叠、黏贴,塑形、提手)最后都是吵着嚷着”老师帮我!”,每次做灯笼都让老师本人手忙脚乱,疲于奔命(浪费老师)。
为了给我自己减少麻烦,我决定把图纸变小,从一页A4一个灯笼变成1页2个灯笼。
这时我就明显看到“word人工制作的多边形”很难快速修改成一页两张。
于是我只能把docxz转jpg
'''
元宵节多边形灯笼word手工制作,转打印PDF
星火讯飞、阿夏
20251202
'''import os,time
from docx import Document
from PIL import Image
from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT
from PyPDF2 import PdfFileMerger
from docx.shared import Cm # Import Cm here
import pikepdf
import os
from docx import Document
from PyPDF2 import PdfFileMerger
from docx2pdf import convert
from pdf2image import convert_from_path
import pikepdf# 定义文件夹路径
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250216元宵灯笼'
folder_123 = path + r'\图纸'temp_folder = path + r'\零时'
output_folder = os.path.dirname(folder_123)
os.makedirs(temp_folder, exist_ok=True)# 获取所有docx文件
docx_files = [f for f in os.listdir(folder_123) if f.endswith('.docx')]
print(docx_files)# 将每个docx文件转换为PDF
for docx_file in docx_files:doc_path = os.path.join(folder_123, docx_file)pdf_path = os.path.join(temp_folder, docx_file.replace('.docx', '.pdf'))convert(doc_path, pdf_path)time.sleep(2)print(f"所有PDF文件已合并并转换为图片,保存在 {images_folder}")import shutil
shutil.rmtree(temp_folder)# # 合并所有的PDF文件
# pdf_files = [f for f in os.listdir(temp_folder) if f.endswith('.pdf')]
# merger = PdfFileMerger()
# for pdf_file in pdf_files:
# pdf_path = os.path.join(temp_folder, pdf_file)
# merger.append(pdf_path)
# output_pdf_path = os.path.join(path, f'元宵节灯笼{docx_files}张.pdf')
# merger.write(output_pdf_path)
# merger.close()
# time.sleep(5)#

因为是整页截图,所以白边也在里面(实际我不需要)

插入空白word,把然后边距改成0,打印时选一页两张。勉强打印了一页两图的小灯笼。
图片后补
给孩子再次示范后,并问:觉得自己不行的,举手,发3边形和4边形。
最后一些手艺好的孩子拿了5-8
操作中,果然孩子们眼睛看会了,操作还是“老师帮帮我!”
求助声音从开始就此起彼伏。所以一张照片也没有拍。
代做过程中,听孩子们叫嚷,真心感觉“自己在自讨苦吃”,孩子们等得都不耐烦了
一些能干的孩子看我忙死,就真的自己研究或和同伴商议了。
孩子们的难点:
1、第一步是什么——把纸张剪成两张(这里的白色缝隙可以不要,两张连在一起)


2、最后一步怎么粘
三位手艺好的孩子困在最后一步。我感觉是黏贴条宽度(1CM)太窄了,可以改成2CM


3、内部直筒的空边还是不要了(本来想让孩子们把这个条中间的白色剪下来做提手,两个灰色保留做最后的黏贴固定。实际操作中幼儿前面的步骤都搞不清楚,所以两张纸互相贴边后,发现根本没黏贴的位置了。我代做时都把这条剪了)


基于实操作中的问题。我认为用word手工做不行
1、全部手工调整,无法获取不同大小——如果想让孩子先练习体验了解制作流程,就需要一页1张、2张、4张
2、手工制作,无法实现很多的”X边形“——我费了一小时,也就做了3-8边形。因为需要反复的拆分、分布列,制作粗线条边框。
实验二——python做word表格
因此,回到python,用它来制作word表格单元格
from docx import Document
from docx.shared import Cm, Pt
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_ROW_HEIGHT_RULE # Import the WD_ROW_HEIGHT_RULE enumeration# 创建一个新的Word文档
doc = Document()# 设置上下左右边距为0.7厘米
sections = doc.sections
for section in sections:section.top_margin = Cm(0.7)section.bottom_margin = Cm(0.7)section.left_margin = Cm(0.7)section.right_margin = Cm(0.7)# 添加一个6行5列的表格
table = doc.add_table(rows=6, cols=5)# 设置表格样式
table.style = 'Table Grid'# 设置行高(通过设置单元格的最小高度)
row_heights = [Cm(1.5), Cm(10), Cm(1.5), Cm(1.5), Cm(7), Cm(1.5)]
for i, height in enumerate(row_heights):row = table.rows[i]for cell in row.cells:cell.height_rule = WD_ROW_HEIGHT_RULE.AT_LEAST # Use the correct enumeration valuecell.height = height# 设置列宽
col_widths = [Cm(4), Cm(4), Cm(4), Cm(4), Cm(1.5)]
for i, width in enumerate(col_widths):for row in table.rows:row.cells[i].width = width# 保存文档
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250216元宵灯笼'
doc.save(path + r'\123.docx')
可以生成6行5列表格,可以实现列宽,但是无论怎么调整,行高无法实现,它永远是默认的一倍行距,无法变成我想要的6个单元格高度,
实验三——python做图片(from PIL import Image, ImageDraw)
最后就只剩下做图片了。
把手动word里面3边形模板修改,上下左右边距0,然后做一份连在一起的。顶天立地、全页面的灯笼基础图纸

代码展示(默认制作A4大小210*297,黏贴边2CM)
'''
202502新年05元宵节灯笼python制作图片
星火讯飞、阿夏
20250220
'''from PIL import Image, ImageDraw
import math,os# 宽
w = 2100
# 高
h = 2970
# 骨架贴边
t = 200
# 上下贴边
b = 150
# 外边高度(需要乘以2)
g = 710
# 内柱高度
n = 910
# 虚线
dash_length = 20
space_length = 20path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250216元宵灯笼'
pic=path+r'\00多边形图片'
os.makedirs(pic,exist_ok=True)for d in range(3,50):# X边形(可修改遍历)# d = 3# 创建一个2100x2900的白色背景图片img = Image.new('RGB', (w, h), 'white')draw = ImageDraw.Draw(img)# 画外框图纸border_width = 5# 制作外边# 画一个从(0,0)到(15,210)的长方形灰色底纹填充# (右侧黏贴变宽度200)rectangle_color = (128, 128, 128) # 灰色# 两个灰色draw.rectangle([(0, 0), (w-t, b)], fill=rectangle_color)draw.rectangle([(0, b + g * 2), (w - t, b * 2 + g * 2)], fill=rectangle_color)# 外边框线draw.rectangle([(0, 0), (w - t, b * 2 + g * 2)], outline='black', width=border_width)# 在(0, b*1+g*1)), (w-200, b*1+g*1))的地方画一条黑色2磅间隔2磅的虚线start_y = b + gend_y = start_y + gfor x in range(0, w - t, dash_length + space_length):draw.line([(x, start_y), (x + dash_length, start_y)], fill='black', width=border_width)# 插分等dd = []for x in range(d):f = (w - t) / d * (x)print(f)dd.append(f)print(dd)# 画从0,dd到100,dd的直线(多条)border_width2 = 10for x in dd:draw.line([(x, b), (x, b + g * 2)], fill='black', width=border_width2)# 画内柱图纸# 外边框线draw.rectangle([(w-t,g*2+b*2), (w, h)], fill=rectangle_color, width=border_width2)# 画白色draw.rectangle([(0, b * 2 + g * 2), (w-t, h)], fill='white')# border_width = 5# 制作外边# 画一个从(0,0)到(15,210)的长方形灰色底纹填充# (右侧黏贴变宽度200)rectangle_color = (150, 150, 150) # 灰色# 两个灰色draw.rectangle([(0, b + g * 2), (w - t, b * 3 + g * 2)], fill=rectangle_color)draw.rectangle([(0, h - b), (w - t, h)], fill=rectangle_color)# 外边框线draw.rectangle([(0, b * 2 + g * 2), (w , h)], outline='black', width=border_width2)draw.rectangle([(0, 0), (w-t, b * 2 + g * 2)], outline='black', width=border_width2)# 插分等dd1 = []for x in range(d):f = (w - t) / d * (x+1)print(f)dd1.append(f)print(dd1)# 画从0,dd到100,dd的直线(多条)border_width2=10# # 画从0,dd到100,dd的直线(多条)# 设置虚线的参数dash_length = 30 # 黑线长度space_length = 30 # 空白间隔长度for x1 in dd1:start_x = x1 # 起始x坐标end_x = start_x # 结束x坐标与起始x坐标相同,因为是竖线start_y = b*2+g*2 # 起始y坐标end_y = h # 结束y坐标# 画从上到下的虚线for y in range(start_y, end_y, dash_length + space_length):draw.line([(start_x, y), (start_x, y + dash_length)], fill='black', width=border_width2)# 最下面补一条黑线draw.line([(0, h-15), (w,h-15)], fill='black', width=border_width2)# 保存图片img.save(pic + fr'\{d:02}边形灯笼图纸(A4).png')
虽然这段代码是一句一句的测试,观看图片效果,很费精力,但是完成后,随便多少边形都能快速实现
3边形灯笼纸膜

4边形灯笼纸膜
5边形灯笼纸膜
6边形灯笼纸膜
7边形灯笼纸膜
8边形灯笼纸膜

29边形纸膜
(超过10边形的灯笼已经近似圆形灯笼了),此时内部直筒的折痕线就没有必要折叠了)


然后我不想制作word模板了,而是直接在word里制作表格,插入想要的图片。
from docx import Document
from docx.shared import Cm
import os
# import matplotlib.cm as cmpath = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250216元宵灯笼'
image_folder = os.path.join(path, '00多边形图片')
output_dir = os.path.join(path, '临时')
os.makedirs(output_dir, exist_ok=True)# 一页2图(横板)
t = 2# 创建一个新的Word文档
doc = Document()# 设置页面方向为横向
section = doc.sections[0]
new_width, new_height = section.page_height, section.page_width
section.orientation = 1 # 1表示横向
section.page_width = new_width
section.page_height = new_height# 设置页面边距
section.top_margin = Cm(0.7)
section.bottom_margin = Cm(0.7)
section.left_margin = Cm(0.7)
section.right_margin = Cm(0.7)# 添加一个表格
table = doc.add_table(rows=1, cols=2)# # 计算列宽
column_width = (29.7 - 0.7 * 2) / 2# 设置列宽
for row in table.rows:for cell in row.cells:cell.width = Cm(column_width)# 保存文档
doc.save(os.path.join(path, f'{t}图.docx'))import os
from docx import Document
from docx.shared import Cm
from docx.shared import Cm # Import Cm here
import os,time
from docx import Document
from PIL import Image
from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT
from PyPDF2 import PdfFileMerger
from docx.shared import Cm # Import Cm here
import pikepdf# 获取123文件夹下所有图片文件名列表image_files = [f for f in os.listdir(image_folder) if f.endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]# 将图片列表拆分成每组2个
grouped_images = [image_files[i:i + 2] for i in range(0, len(image_files), 2)]
print(grouped_images)
# 打开1.docx文件for i in range(len(grouped_images)):doc = Document(os.path.join(path, f'2图.docx'))table = doc.tables[0]for j in range(0,2): cell = table.cell(0, j) # 0,2,4# if image_path:run = cell.paragraphs[0].add_run()run.add_picture(os.path.join(image_folder,grouped_images[i][j]), width=Cm(13.25),height=Cm(20.07))# cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER# 保存修改后的文档doc_path = os.path.join(output_dir, f"{i+1:02}.docx")doc.save(doc_path)# import os
# from docx import Document
# from reportlab.pdfgen import canvas
# from PyPDF2 import PdfFileMerger
# from docx2pdf import convert# # 获取所有docx文件
# docx_files = [f for f in os.listdir(temp_folder) if f.endswith('.docx')]
# # 获取所有docx文件# # 将每个docx文件转换为PDF
# for docx_file in docx_files:
# doc_path = os.path.join(temp_folder, docx_file)
# pdf_path = os.path.join(temp_folder, docx_file.replace('.docx', '.pdf'))
# convert(doc_path, pdf_path)
# time.sleep(1)# # 合并所有的PDF文件
# # 获取所有生成的PDF文件
# pdf_files = [f for f in os.listdir(temp_folder) if f.endswith('.pdf')]# # 创建PdfFileMerger对象
# merger = PdfFileMerger()# # 将所有PDF文件添加到合并器中
# for pdf_file in pdf_files:
# pdf_path = os.path.join(temp_folder, pdf_file)
# merger.append(pdf_path)# # 输出合并后的PDF文件
# output_pdf_path = os.path.join(path, f'九叠篆篆章单字_中2班_幼儿姓名{len(images_123)}人{int(len(images_123)/12)}张.pdf')
# # output_pdf_path = os.path.join(path, f'九叠篆篆章_中2班_幼儿姓名{len(images_123)}人{int(len(images_123)/12)}张.pdf')
# merger.write(output_pdf_path)
# merger.close()# print(f"所有PDF文件已合并到 {output_pdf_path}")# import shutil
# shutil.rmtree(temp_folder)# # 以下是一行行插入的代码
# # num_docs = len(images_123) // 12
# # for i in range(num_docs):
# # doc = Document(doc_template_path)
# # table1 = doc.tables[0]# # # 添加第一行图片到第一张表格的第一行
# # for j in range(4):
# # cell = table1.cell(0, j)
# # image_path = images_123[i * 12 + j] if (i * 12 + j) < len(images_123) else ""
# # if image_path:
# # run = cell.paragraphs[0].add_run()
# # run.add_picture(image_path, width=Cm(size), height=Cm(size))
# # cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER# # # 添加第二行图片到第一张表格的第二行(旋转180度)
# # for j in range(4):
# # cell = table1.cell(1, j)
# # image_path = images_234[i * 12 + j] if (i * 12 + j) < len(images_234) else ""
# # if image_path:
# # # 打开图片并旋转180度
# # with Image.open(image_path) as img:
# # img = img.rotate(180, expand=True)
# # img_path = os.path.join(temp_folder, f"temp_{i}_{j}.png")
# # img.save(img_path)# # run = cell.paragraphs[0].add_run()
# # run.add_picture(img_path, width=Cm(size), height=Cm(size))
# # cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER# # # 删除临时文件
# # os.remove(img_path)# # # 添加第三行图片到第一张表格的第三行
# # for j in range(4):
# # cell = table1.cell(2, j)
# # image_path = images_123[i * 12 + 4 + j] if (i * 12 + 4 + j) < len(images_123) else ""
# # if image_path:
# # run = cell.paragraphs[0].add_run()
# # run.add_picture(image_path, width=Cm(size), height=Cm(size))
# # cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER# # # 添加第四行图片到第一张表格的第四行(旋转180度)
# # for j in range(4):
# # cell = table1.cell(3, j)
# # image_path = images_234[i * 12 + 4 + j] if (i * 12 + 4 + j) < len(images_234) else ""
# # if image_path:
# # # 打开图片并旋转180度
# # with Image.open(image_path) as img:
# # img = img.rotate(180, expand=True)
# # img_path = os.path.join(temp_folder, f"temp_{i}_{j+4}.png")
# # img.save(img_path)# # run = cell.paragraphs[0].add_run()
# # run.add_picture(img_path, width=Cm(size), height=Cm(size))
# # cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER# # # 删除临时文件
# # os.remove(img_path)# # # 添加第五行图片到第一张表格的第五行
# # for j in range(4):
# # cell = table1.cell(4, j)
# # image_path = images_123[i * 12 + 8+ j] if (i * 12 + 8 + j) < len(images_123) else ""
# # if image_path:
# # run = cell.paragraphs[0].add_run()
# # run.add_picture(image_path, width=Cm(size), height=Cm(size))
# # cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER# # # 添加第六行图片到第一张表格的第六行(旋转180度)
# # for j in range(4):
# # cell = table1.cell(5, j)
# # image_path = images_234[i * 12 + 8 + j] if (i * 12 + 8 + j) < len(images_234) else ""
# # if image_path:
# # # 打开图片并旋转180度
# # with Image.open(image_path) as img:
# # img = img.rotate(180, expand=True)
# # img_path = os.path.join(temp_folder, f"temp_{i}_{j+8}.png")
# # img.save(img_path)# # run = cell.paragraphs[0].add_run()
# # run.add_picture(img_path, width=Cm(size), height=Cm(size))
# # cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER# # # 删除临时文件
# # os.remove(img_path)# # # 保存修改后的文档
# # doc_path = os.path.join(temp_folder, f"{i+1:02}.docx")
# # doc.save(doc_path)

一页2图,因为有0.7CM白边,所以实际上黏贴边小于2CM。
回到第一个代码,把200的黏贴边,改成250


差不多2CM白边了。明天区打印一张看看效果
相关文章:
【教学类-89-06】20250220新年篇05——元宵节灯笼
背景需求: 每年元宵、国庆都回带孩子做灯笼。用python对"对折灯笼“的纸模进行不同图案的填充(区分物权) 【教学类-39】A4红纸-国旗灯笼纸模(庆祝中华人民共和国成立74周年)_a4 打印 灯笼-CSDN博客文章浏览阅读1…...
C++ Primer 类的静态成员
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
【UCB CS 61B SP24】Lecture 4 - Lists 2: SLLists学习笔记
本文内容为重写上一节课中的单链表,将其重构成更易于用户使用的链表,实现多种操作链表的方法。 1. 重构单链表SLList 在上一节课中编写的 IntList 类是裸露递归的形式,在 Java 中一般不会这么定义,因为这样用户可能需要非常了解…...
【科研绘图系列】R语言绘制小提琴图、散点图和韦恩图(violin scatter plot Venn)
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载画图1画图2画图3画图4画图5画图6画图7参考介绍 【科研绘图系列】R语言绘制小提琴图、散点图和韦恩图(violin & scatter plot & Venn) 加载R包 library…...
Linux中POSIX应用场景
Linux 提供了丰富的 POSIX(Portable Operating System Interface)标准接口,这些接口可以帮助开发者编写可移植、高效的应用程序。POSIX 标准定义了一系列系统调用和库函数,涵盖了文件操作、进程管理、线程管理、信号处理、同步机制…...
量子算法导论
重学了量子算法,不知道是温故而知新,还是之前的教材没有讲过这个概念。 如果把(图灵机)计算机比作一个查询机器,输入x通过f(x)作用得出结果,而查询的过程就是计算的过程。 中文解释…...
nasm - BasicWindow_64
文章目录 nasm - BasicWindow_64概述笔记my_build.batnasm_main.asmEND nasm - BasicWindow_64 概述 学习网上找到的demo. x64和x86的汇编源码还差挺多的。 x64的汇编代码不好写,细节整不对,程序就不运行。 如果要查为啥不运行,也要看和正向…...
SpringBoot:SSL证书部署+SpringBoot实现HTTPS安全访问
一、前言 SSL协议介于TCP/IP协议栈的第四层(传输层)和第七层(应用层)之间,为基于TCP的应用层协议(如HTTP)提供安全连接。它通过在客户端和服务器之间建立一个加密的通道,确保数据在传…...
selenium爬取苏宁易购平台某产品的评论
目录 selenium的介绍 1、 selenium是什么? 2、selenium的工作原理 3、如何使用selenium? webdriver浏览器驱动设置 关键步骤 代码 运行结果 注意事项 selenium的介绍 1、 selenium是什么? 用于Web应用程序测试的工具。可以驱动浏览…...
Spark提交任务
1、Spark提交任务到Yarn 1.1、DwKuduApp spark-submit --class com.io.etl.dwkudu.DwKuduApp \ --files /etl/etl-dwkudu/conf/doris.property,/etl/etl-dwkudu/conf/redis.property,/etl/etl-dwkudu/conf/log4j.property \ --master yarn --deploy-mode cluster \ --driver-…...
游戏引擎学习第113天
仓库:https://gitee.com/mrxiao_com/2d_game_2 黑板:优化的基本过程 在游戏编程中,优化是一个非常重要的学习内容,尤其是想要成为专业开发者时。优化的核心是理解代码的执行速度,以及如何提升其性能。在这个阶段,已经…...
token是什么
在自然语言处理(NLP)和机器学习的背景下,token 是指模型在处理文本时的最小单位。通常,这个单位可以是单词、字符,或者词的一部分。具体来说,token 的定义取决于你使用的模型和它的分词方式。 举个例子&am…...
23. AI-大语言模型-DeepSeek赋能开发-Spring AI集成
文章目录 前言一、Spring AI 集成 DeepSeek1. 开发AI程序2. DeepSeek 大模型3. 集成 DeepSeek 大模型1. 接入前准备2. 引入依赖3. 工程配置4. 调用示例5. 小结 4. 集成第三方平台(已集成 DeepSeek 大模型)1. 接入前准备2. POM依赖3. 工程配置4. 调用示例…...
IPv6报头40字节具体怎么分配的?
目录 IPv6报头结构 字段详解 示例代码:IPv6报头的Python实现 输出示例 IPv6协议是为了解决IPv4地址耗尽问题而设计的下一代互联网协议。与IPv4相比,IPv6不仅提供了更大的地址空间,还简化了报头结构,提高了网络设备的处理效率。…...
驱动开发、移植
一、任务明确:把创龙MX8的驱动 按照我们的要求 然后移植到 我们的板子 1.Linux系统启动卡制作, sd卡 先按照 《用户手册—3-2-Linux系统启动卡制作及系统固化》 把创龙的Linux系统刷进去。 2. 把TLIMX8-EVM的板子过一遍 把刚刚烧好系统的sd卡插入 创…...
BFS与Flood Fill:算法原理、实现细节与复杂度分析
目录 1. 概述 2. BFS 的基本原理 3. Flood Fill 算法 4. BFS 实现 Flood Fill 的步骤 5. C 实现 6. 代码解析 7. 复杂度分析 8. 应用场景 总结 1. 概述 Flood Fill 算法是一种用于填充封闭区域的算法,常用于图像处理、绘图工具和游戏开发中。BFS(…...
计算机网络基础杂谈(局域网、ip、子网掩码、网关、DNS)
目录 1. 简单局域网的构成 2. IP 地址 3. 子网掩码 4. IP地址详解自定义IP 5. IP 地址详解 6. 网关 7. DNS 域名解析 8. ping 1. 简单局域网的构成 交换机是组建局域网最重要的设备,换句话说,没有交换机就没法搭建局域网 交换机不能让局域网连…...
雷龙CS SD NAND(贴片式TF卡)测评体验
一、产品概述 近期获赠雷龙科技(Longsto)推出的CS系列贴片式SD NAND存储解决方案,包含两片工业级贴片式NAND芯片(CSNP16GCR01-AOW)及全兼容转接板。该方案支持TF卡形态扩展,实现高可靠性嵌入式存储应用。 …...
【Alertmanager】alertmanager告警系统原理剖析与应用实战,应有尽有非常全面
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...
Java——权限修饰符
一、权限修饰符的继承访问规则 以下按访问范围从宽到窄排序: 修饰符同包同类同包子类同包非子类跨包子类跨包非子类public✔️✔️✔️✔️✔️protected✔️✔️✔️✔️❌默认(包级)✔️✔️✔️❌❌private✔️❌❌❌❌ 关键点…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

