【教学类-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✔️❌❌❌❌ 关键点…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...

