背景需求
之前打印了10-45(间隔5)的圆盘图纸,
【教学类-103-01】20250605立体纸盘(3边形-22边形,角度5、10……40,45)-CSDN博客文章浏览阅读444次,点赞8次,收藏8次。【教学类-103-01】20250605立体纸盘(3边形-22边形,角度5、10……40,45)
https://blog.csdn.net/reasonsummer/article/details/148456885?spm=1011.2415.3001.5331
但是老师和2位幼儿实际操作后,
1.灰色比较深,幼儿看不见黑色的裁剪线条
2.间隔5太窄了,要剪很多次,要贴很多次,而且容易贴不住。
3.而且4边形时,我想要90度角的纸盒。结果40度时还是40倾斜角。并没有变成直角,也就是黏贴的区域需要90度。
15变形的黏贴后呈现90度角,但是贴的很多,速度太慢
所以我把角度改成30-90的15间隔数
灰色从gray改成lightgray
代码展示
'''
自助餐纸盘 角度20,3-22边形(再大就灰色部分就贴不满了。角度30,45、60,75,90
手动删除部分肯定不能黏贴的
deepseek,阿夏
20250607
'''
from PIL import Image, ImageDraw, ImageFont
import math
import os
import shutil
from docx import Document
from docx.shared import Cm
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
import pythoncom
from win32com.client import Dispatch
from PyPDF2 import PdfMerger
# 加载黑体字体(使用系统自带的黑体)
try:
font = ImageFont.truetype("simhei.ttf", 50) # Windows系统黑体
except:
try:
font = ImageFont.truetype("Arial Unicode.ttf", 50) # Mac系统备用字体
except:
font = ImageFont.load_default() # 默认字体
# 各种角度旋转10、15、20...45
for angles in range(30, 105, 15):
first = 3
last = 25
x = list(range(first, last+1))
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250605餐盘'
new = os.path.join(path, '00图片')
os.makedirs(new, exist_ok=True)
for i, xx in enumerate(x):
# 创建1000x1000白色画布
width, height = 1000, 1000
image = Image.new('RGB', (width, height), 'white')
draw = ImageDraw.Draw(image)
# 画一个1000x1000的白色填充黑色圆形,10磅粗细
draw.ellipse([(0, 0), (width-1, height-1)], fill='white', outline='black', width=10)
# 计算正多边形的顶点
def calculate_polygon_points(center_x, center_y, size, si