首页 > 其他分享 >【教学类-34-09】20241010“圆角”凹凸拼图)中2班8K图纸绘画 自制A4拼图(3*4)

【教学类-34-09】20241010“圆角”凹凸拼图)中2班8K图纸绘画 自制A4拼图(3*4)

时间:2024-10-12 18:19:06浏览次数:3  
标签:8K 20241010 img 拼图 range path print new

43b98ec56fcd4c8b8e99d8190720b0dd.png

 

背景需求

早晨,21号第一个来园,我想给她描一下学号字帖,发现找不到她的字帖。

d98d38a9a6c849049a353632493185b0.png

我问“你是不是把21的字帖带回去了?”

孩子点点头。

难怪,这几天她做作业,都写出了自己的学号21,

1b1ca2a2ae5d45d6adec3addd3fbc27b.png

可能是家长看到了书包里的字帖,在家给她练过数字了!

 

感觉字帖挺有用的(* ̄︶ ̄)

【教学类-23-02】20240929(中2班描字)不会写学号的中班幼儿的学号描字贴——杨任东竹石体-Regular-CSDN博客文章浏览阅读1.1k次,点赞24次,收藏8次。【教学类-23-02】20240929(中2班描字)不会写学号的中班幼儿的学号描字贴——杨任东竹石体-Regularhttps://blog.csdn.net/reasonsummer/article/details/142643933

于是我让她随便画一张8K纸,我想做测试用幼儿自己的绘画作品制作一幅拼图。

她画了一条毛毛虫,有点小,我提示她“最好画大一点”

 

8607876c98164018885f0b926a6417e6.png

“这里有点空,你再画点什么”

孩子画了点花朵,同时也写上了倾斜的学号21(镜像)

e201f3dd43f043e88c8454dae491824a.png

后面陆续来了两位男孩,也画了8K的画,同样提示他们把画面撑满。

a8d606fa12984627a51c50c7261dddc3.png

3dd3d1d7a8964ec7a788fc247003e20a.png

最后的作品效果(孩子们都自发画了学号!感觉学号没有白练啊)

0d0610cbd8e34d23bf97d50dca2e6b0d.jpeg93413f3b37284fe3b5d234cec4eecaf5.jpegabe0353246e145a4936c4e2b6e64c7dd.jpeg

 

作品感悟:

学校的木块拼图上每一块都有图案和颜色。

 

但三位中班上学期孩子们(幼儿绘画水平中等)画的图案中有大量的空白,因此我不能做直角拼图,只能做凹凸角拼图——如果两块图案都是纯白色,就要靠凹凸角来判断位置了。)

 

具体参考以下代码

【教学类-34-05】20230425拼图(“圆角”凹凸拼图)3*4格子(中班主题《个别化拼图》偏美术)_拼图的凹凸槽叫什么-CSDN博客文章浏览阅读1k次。【教学类-34-05】20230425拼图(“圆角”凹凸拼图)3*4格子(中班主题《个别化拼图》偏美术)_拼图的凹凸槽叫什么https://blog.csdn.net/reasonsummer/article/details/130368494

本次我对以上代码稍微进行了路径方面的调整。其他都一样。

 

素材准备

94692d4e772340109f62e0c8bc0b9970.png

93ed0d4e71a147abafddd664444f3994.png

WORD模版(考虑到难度,先使用4*3=12块)

74fbe06559924fbe94176f0d16b6b934.png

代码展示


'''
目的:中2班3*4彩色拼图(有凹凸)
作者:阿夏
时间:2024年10月10日 15:43
'''

import os,time


yangshi=0.56
# yangshi=float(input('输入造型数字:凹凸基础0.5(链边太细);凹凸最适宜0.56;纯方块:7\n'))
# pic_width=int(input('请输入底边像素(1024)\n'))# 长度 把MB图片缩小一点,生成的拼图块格式也小一点1024
# pic_height=int(input('请输入侧边像素(768)\n'))# 宽度768
Number=12
# Number=int(input('多少块3*4(12块)\n'))# 宽度768
# pic_puzzle_longnum=int(input('请输入侧边的积木块数量(3)\n'))# 积木块数量4*6=12块 中的4  768
# pic_puzzle_shortnum=int(input('请输入底边的积木块数量(4)\n'))# 积木块数量4*6=12块 中的6  1024
# pic_puzzle_side_long=float(input('请输入word里面积木块图片的长度\n'))# 小拼图块的长度  1.5正方形
# pic_puzzle_side_short=float(input('请输入word里面积木块图片的宽度\n'))# 小拼图块的宽度  1.5正方形
# fenlan=int(input('请输入word里面分栏数量\n'))# 1.5  4*6时  6列

wide=3
high=4

'''
A4短边 最多4格,1.7
3格 2.3
2格 3.6

拼贴后的作品只有A4一半大小

项目1:横版照片
造型:0.56凹凸,7方形
样式:4:3
像素:1024*768
格子:4*6=24块
积木块长宽:1.7*1.7
分栏:6

项目2:横版照片 16宫格照片
样式:1:1
像素:1024*1024
格子:4*4
积木块长宽:1.7*1.7
分栏:5

项目3:横版照片 9宫格照片
样式:1:1
像素:1024*1024
格子:3*3
积木块长宽:2.3*2.3
分栏:3
(比4*6图片小)

项目4:横版照片 4宫格照片
样式:1:1
像素:1024*1024
格子:2*2
积木块长宽:3.6*3.6
分栏:2
(比4*6图片小)

2张A4打印纸 
成品a4一半

项目1:横版照片
造型:0.56凹凸,7方形
样式:4:3
像素:1024*768
格子:4*6=24块
积木块长宽:2.3*2.3
分栏:4
'''


# pic=['jpg','png','tif']
# for i in pic:
#     # print(i)
#     geshi.append(i)
# print(geshi)
# bmp,jpg,png,tif,gif,pcx,tga,exif,fpx,svg,psd,
# cdr,pcd,dxf,ufo,eps,ai,raw,WMF,webp,avif,apng 等。”

#
print('----------第1步:读取总图(大图)所在的位置:-----------')

pathz=[]
path=r'C:\Users\jg2yXRZ\OneDrive\桌面\20241010幼儿绘画制作拼图'
prz=path+r"\00图片"
# 过滤:只保留png结尾的图片
imgs1z=os.listdir(prz)
for img1z in imgs1z:
    if img1z.endswith(".jpg"):
        pathz.append(prz+'\\'+img1z)
# 所有总图片(原图)的路径
print(pathz)
print(len(pathz))# 一共几张图片(2张测试)
# print(imgs1z)



print('------第2步,调整照片大小(把照片缩小格式(4:3横版、3:4竖版、1:1九宫格)这里是1024*768-------')
# 先缩小图片格式,这样导出的拼图块们的容量小一点(适合打印版本A4)
# 不用第一部分,每张拼图块图片很大,4MB照片拆分24张,每张1MB(适合电子白板教学,高清图片)
# '''作者:幸福清风https://blog.csdn.net/xun527/article/details/117085712'''

from PIL import Image
import os.path
import glob

def convertjpg(jpgfile,outdir,width=1024,height=768):      #横版本 把 16-266KB的照片转换成540*405像素,照片大小16*43KB,拆分后正好4*6一页
# def convertjpg(jpgfile,outdir,width=405,height=540):      #竖版照片 把 16-266KB的照片转换成540*405像素,照片大小16*43KB,拆分后正好4*6一页
      # 400*300宽高像素  15-24K
      # 520*390宽高像素  29-30K
# 1024,height=768  哪怕只有45K,也是格子很大
    img=Image.open(jpgfile)
    try:
        new_img=img.resize((width,height),Image.BILINEAR)
        if not os.path.exists(outdir):
            os.mkdir(outdir)
        new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
    except Exception as e:
        print(e)

print('------第3步,读取大图的位置,生成凹凸拼图------')

# '''多照片()''' 
# 读取路径下的一个文件
for w in range(len(pathz)):    # 0-2

    # # 新建一个”装N份word和PDF“的文件夹
    n=path+fr'\小图{w+1}'
    print(n)
    os.makedirs(n,exist_ok=True)    # 1-2

    # # path = '{}'.format(pathz[w])
    # print(path)
    # r"C:\Users\jg2yXRZ\OneDrive\桌面\凸起图案拼图\1.jpg"# 来源

    # # 读取路径下的一个文件
    # path = r"C:\Users\jg2yXRZ\OneDrive\桌面\凸起图案拼图\1.jpg"# 来源

    # for jpgfile in glob.glob(path):
    #     convertjpg(jpgfile,r"C:\Users\jg2yXRZ\OneDrive\桌面\凸起图案拼图\小图")# 去向
    # '''# 全部照片'''
    # path = r"C:\Users\Administrator\Desktop\凸起图案拼图\原图\*.{}".format(geshi)
    # for jpgfile in glob.glob(path):
    #     convertjpg(jpgfile,r"C:\Users\Administrator\Desktop\凸起图案拼图\照片调整")


#     print('------以下部分 生成带凹凸拼图-------')
#     '''https://blog.csdn.net/zbbzb/article/details/120127932 作者:zbbzb'''

#     # import os
#     # from PIL import Image
#     # # 分隔成n*m个方块
#     # # 分割几行几列, 二维数组保存
#     # def SplitImages(img_path, row, col):
#     #     path_name = os.path.dirname(img_path)
#     #     img = Image.open(img_path).convert("RGBA")
#     #     imgSize = img.size

#     #     splitW = int(imgSize[0]/col)
#     #     splitL = int(imgSize[1]/row)

#     #     pimg = img.load()

#     #     imbList = []
#     #     for i in range(row):
#     #         rowList = []
#     #         l = (i + 1) * splitL
#     #         for j in range(col):
#     #             w = (j + 1) * splitW
#     #             imb = Image.new('RGBA', (splitW, splitL),(255,255,255,0))
#     #             pimb = imb.load()

#     #             for k in range(j * splitW, w):
#     #                 for z in range(i * splitL, l):
#     #                     pimb[k - splitW * j, z - i * splitL] = pimg[k,z]
#     #             dirPath = path_name + "/" + str(i*10 + j) + ".png"
#     #             # imb.save(dirPath)
#     #             rowList.append(imb)
#     #         imbList.append(rowList)

#     #     return imbList

    

    # 最终版:随机凹凸, 考虑圆心偏移
    import os
    from PIL import Image
    import random

    # 分割几行几列, 二维数组保存
    def SplitImages(img_path, row, col):
        path_name = os.path.dirname(img_path)
        img = Image.open(img_path).convert("RGBA")
        imgSize = img.size

        splitW = int(imgSize[0]/col)
        splitL = int(imgSize[1]/row)

        pimg = img.load()

        imbList = []
        for i in range(row):
            rowList = []
            l = (i + 1) * splitL
            for j in range(col):
                w = (j + 1) * splitW
                imb = Image.new('RGBA', (splitW, splitL),(255,255,255,0))
                pimb = imb.load()

                for k in range(j * splitW, w):
                    for z in range(i * splitL, l):
                        pimb[k - splitW * j, z - i * splitL] = pimg[k,z]
                dirPath = path_name + "/" + str(i*10 + j) + ".png"
                # imb.save(dirPath)
                rowList.append(imb)
            imbList.append(rowList)

        return imbList

    def Resize(img, rizeW, rizel, pastePoint=None): 
        if pastePoint is None:
            pastePoint = [0, 0]

        new_im = Image.new('RGBA', [rizeW, rizel],(255,255,255,0))
        new_im.paste(img, pastePoint)

        return new_im

    def SplitCircle(imbList, imgPath):
        path_name = os.path.dirname(imgPath)
        img = Image.open(imgPath).convert("RGBA")
        imgSize = img.size

        col = len(imbList[0])
        row = len(imbList)

        if col == 1 and row == 1:
            return 

        splitW = int(imgSize[0]/col)
        splitL = int(imgSize[1]/row)

        minV = min(splitW, splitL)
        r_d = int(minV / 4) # 要计算 两个不能比 l 长 并且加上 offset 也不能超过 l
        r_offset = int(minV / 8)

        pSplitW = splitW + (r_d + r_offset) * 2
        pSplitL = splitL + (r_d + r_offset) * 2

        pimg = img.load()
        
        # 存(row - 1) * (col - 1) 个中心点
        pointList = []
        for i in range(row):
            colPointList = []
            for j in range(col):
                colPoint = []
                rowPoint = []
                if j != col - 1:
                    colPoint = [splitW * (j + 1), int(splitL/2) + i * splitL]
                if i != row - 1:
                    rowPoint = [int(splitW / 2) + j * splitW, splitL * (i + 1)]
                colPointList.append({'colPoint': colPoint, 'rowPoint': rowPoint})

                imbList[i][j] = Resize(imbList[i][j], pSplitW, pSplitL, [r_d + r_offset, r_d + r_offset])
                dirPath = path_name + "\\" + str(i*10 + j) + ".png"
                # imbList[i][j].save(dirPath)
            pointList.append(colPointList)

        for i in range(row):
            for j in range(col):
                imbImg = imbList[i][j]
                new_img = imbImg

                # 圆心靠左 靠右, 默认靠右
                lrandNum = random.randint(0, 999999)
                drandNum = random.randint(0, 999999)
                lrRight = True
                drRight = True
            
                if lrandNum < 500000:
                    lrRight = False
                if drandNum < 500000:
                    drRight = False

                new_img_imb = new_img.load()

                if j != col - 1:

                    if lrRight :
                        new_next_img = imbList[i][j + 1]
                        new_next_img_imb = new_next_img.load()
                        # 左右
                        for k in range((j + 1) * splitW, (j + 1) * splitW + r_d + r_offset):
                            for z in range(i * splitL, (i + 1) * splitL):
                                r_w = pointList[i][j]['colPoint'][0] + r_offset
                                r_l = pointList[i][j]['colPoint'][1] 
                                r = ((pow(abs(k - r_w),2) + pow(abs(z - r_l),2))) ** yangshi
                                # 凹凸圆球的直径,作者原设置0.5,感觉三个凹型的拼图连接地方太细了,幼儿容易剪断,所以这里改成0.55
                                #  测试结果:0.3不规则矩形块(图形类似俄罗斯方块)
                                # 0.7 方块,四周 有很小的圆点(不连接) 内部有很小空心圆点(适合电子版)
                                # 0.6 方块,四周 有很大的圆点(不连接) 内部有很小空心圆点(适合电子版)
                                if r < r_d:
                                    new_img_imb[k - j * splitW + r_d + r_offset, z - i * splitL + r_d + r_offset] = pimg[k, z]
                                    new_next_img_imb[k - (j + 1) * splitW + r_d + r_offset, z - i * splitL + r_d + r_offset] = (255,255,255,0)

                        imbList[i][j + 1] = new_next_img
                    else:
                        new_next_img = imbList[i][j + 1]
                        new_next_img_imb = new_next_img.load()
                        # 左右
                        for k in range((j + 1) * splitW - r_d - r_offset, (j + 1) * splitW):
                            for z in range(i * splitL, (i + 1) * splitL):
                                r_w = pointList[i][j]['colPoint'][0] - r_offset
                                r_l = pointList[i][j]['colPoint'][1]
                                r = ((pow(abs(k - r_w),2) + pow(abs(z - r_l),2))) ** yangshi
                                if r < r_d:
                                    new_next_img_imb[k - (j + 1) * splitW + r_d + r_offset, z - i * splitL + r_d + r_offset] = pimg[k, z]
                                    new_img_imb[k - j * splitW  + r_d + r_offset, z - i * splitL + r_d + r_offset] = (255,255,255,0)

                        imbList[i][j + 1] = new_next_img   

                if i!= row - 1:

                    if drRight:
                        new_down_img = imbList[i + 1][j]
                        new_down_img_imb = new_down_img.load()
                        # 上下
                        for k in range(j * splitW, (j + 1) * splitW):
                            for z in range((i + 1) * splitL, (i + 1) * splitL + r_d + r_offset):
                                r_w = pointList[i][j]['rowPoint'][0]
                                r_l = pointList[i][j]['rowPoint'][1] + r_offset
                                r = ((pow(abs(k - r_w),2) + pow(abs(z - r_l),2))) ** yangshi
                                if r < r_d:
                                    new_img_imb[k - j * splitW + r_d + r_offset, z - i * splitL + r_d + r_offset] = pimg[k, z]
                                    new_down_img_imb[k - j * splitW + r_d + r_offset, z - (i + 1) * splitL + r_d + r_offset] = (255,255,255,0)
                
                        imbList[i + 1][j] = new_down_img
                    else:
                        new_down_img = imbList[i + 1][j]

                        new_down_img_imb = new_down_img.load()
                        # 上下
                        for k in range(j * splitW, (j + 1) * splitW):
                            for z in range((i + 1) * splitL - r_d - r_offset, (i + 1) * splitL):
                                r_w = pointList[i][j]['rowPoint'][0]
                                r_l = pointList[i][j]['rowPoint'][1] - r_offset
                                r = ((pow(abs(k - r_w),2) + pow(abs(z - r_l),2))) ** yangshi
                                if r < r_d:
                                    new_down_img_imb[k - j * splitW + r_d + r_offset, z - (i + 1) * splitL + r_d + r_offset] = pimg[k, z]
                                    new_img_imb[k - j * splitW + r_d + r_offset, z - i * splitL + r_d + r_offset] = (255,255,255,0)

                        imbList[i + 1][j] = new_down_img
            
                imbList[i][j] = new_img
        # n=[]    
        # for  i  in range (0,row*col):
        #     n.append(i)
        # print(n)
        print('----把每张图片的12份小图放入一个文件夹小图(每张大图生成一个文件夹)----')
        for i in range(0,row):        # 3
            for j in range(0,col):     # 4
                n=3*4
                dirPath = path+r'\小图{}\{}.png'.format(w+1,'%02d'%(i*4 + j) )
                # 在路径下的“拼图”文件夹下
                #
                imbList[i][j].save(dirPath)


    if __name__ == '__main__':
        # dirPath =r"C:/Users/jg2yXRZ/OneDrive/桌面/凸起图案拼图/小图/"
        
        SplitCircle(SplitImages(pathz[w], wide,high), pathz[w])
        # SplitCircle(SplitImages(pathz[w], pic_puzzle_longnum, pic_puzzle_shortnum) , pathz[w])
        # 横版高4长6
        # 第一个数字是高度4张图片  第二个数字是宽度3张
# '''
# 71.8KB的图片4*6 24张3*8摆放在word 上下左右 1 1 1 1

print('-----第4步:拼图块导入docx打印-----')

print('----------4-1:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
ten_path=path+r'\零时Word'
os.makedirs(ten_path,exist_ok=True)



print('---提取小图片路径------------')

pathall=[]
for r in range(len(pathz)):
    pr=path+r"\小图{}".format(r+1)
    # 过滤:只保留png结尾的图片
    imgs1=os.listdir(pr)
    for img1 in imgs1:
        if img1.endswith(".png"):
            pathall.append(pr+'\\'+img1)
    # 所有图片的路径
print(pathall)
print(len(pathall))
# 216条路径(18张*12图)
# print(imgs1)

print('----------第3步:随机抽取9张图片 ------------')

import docx
from docx import Document
from docx.shared import Pt 
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
import random

import os,time
import docx
from docx import Document
from docx.shared import Inches,Cm,Pt
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn

from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor


for nn in range(0,len(pathz)):    #28/2 0-14
    
    doc = Document(path+r'\长方形模板0403.docx')
#     # 制作列表    
    
    # 从左边图列表和右边图列表中抽取图片(12张图片,可能5个向左、7个向右边)
    # 24条里面0和12条是一组,2个里面随机抽1一个,1和13是一组,2个里面随机抽一个…… 抽出12个图片后

    r=[]    
    c=[]
    r.append(pathall[nn*12:nn*12+12])        # 左侧第一份,
    
    # r.append(path[nn*24:nn*24+24])        # 连续12张图片、2份字母插入同一份A4
    
    # print(r)
    # 再打乱顺序读取12个      
    for a in r:
        for b in a:
            c.append(b)
    print(c)    
    
    figures=random.sample(c[0:12],Number)    # 前9张不重复打乱     
    # figures2=random.sample(c[4:8],Number)    # 后9张不重复打乱
    # figures3=random.sample(c[12:18],Number)    # 后6张不重复打乱
    # figures4=random.sample(c[18:24],Number)    # 后6张不重复打乱
    
    # 9+9张不重复打乱图片合并
    # figures=figures1+figures2
    # figures=figures1+figures2+figures3+figures4
    print(figures)

    # # 每2个学号一组的列表 m名字里面的前两个数字(学号)
    # name2=name[nn*2:nn*2+2]
#     print(name2)

    # for z in range(2):        # 5行组合循环2次 每页两张表
              

    # 单元格位置3*3格
    bg=[]
    # 前1+3+1行不要写入 从4动
    for x in range(0,3):        # 3行 索引1行2行3行
        for y in range(0,4):    # 3列 索引0列1列2列
                ww='{}{}'.format(x,y)
                bg.append(ww)
    print(bg) 

    table = doc.tables[0]          

    for t in range(len(bg)):   # 02
        pp=int(bg[t][0:1])    
        qq=int(bg[t][1:2])  
        # print(p)               
        k=figures[t]         

        print(pp,qq,k)

        # 写入图片
        run=doc.tables[0].cell(pp,qq).paragraphs[0].add_run()        # 在第1个表格中第2个单元格内插入国旗
        run.add_picture('{}'.format(k),width=Cm(7.06),height=Cm(6.5))
        # 单元格宽度6.15   6.15
        table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.LEFT #居中 
    
#         # 姓氏描画文字
#         title=[]
#         for t in range(4):
#             title.append(name2[z][0])
#         print(title)

#         wz=[]
#         # 前1+3+1行不要写入 从4动
#         for x1 in range(0,3):        # 3行 索引1行2行3行
#             for y1 in range(0,4):    # 3列 索引0列1列2列
#                     ww='{}{}'.format(x1,y1)
#                     wz.append(ww)
#         print(wz)           
            
        
    doc.save(ten_path+r'\{}.docx'.format('%02d'%nn))   
    from docx2pdf import convert

    # docx 文件另存为PDF文件
    inputFile = ten_path+r'\{}.docx'.format('%02d'%nn)  # 要转换的文件:已存在
    outputFile =ten_path+r'\{}.pdf'.format('%02d'%nn)  # 要生成的文件:不存在
    # 先创建 不存在的 文件
    f1 = open(outputFile, 'w')
    f1.close()
    # 再转换往PDF中写入内容
    convert(inputFile, outputFile)
    time.sleep(2)
    
print('----------第4步:把都有PDF合并为一个打印用PDF------------')
    
# 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
import os
from PyPDF2 import PdfFileMerger
target_path = ten_path
pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
pdf_lst.sort()
file_merger = PdfFileMerger()
for pdf in pdf_lst:
    print(pdf)
    file_merger.append(pdf)
    
file_merger.write(path +r"\(打印合集)中2班圆角凹凸图案拼图A4一页一份(3乘4).pdf")

file_merger.close()
# doc.Close()

# # # print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree(ten_path) #递归删除文件夹,即:删除非空文件夹

for i in range(len(pathz)):    
    shutil.rmtree(path+r'\小图{}'.format(i+1)) #递归删除文件夹,即:删除非空文件夹

5faee4a63ed240d9a1f328be1b42110f.png

b09d9bbd2dc9451eae453200a08e265f.png

最后的结果

bc57b4ae8e3e4cdab0c17b3b5d92f452.png

 

43b98ec56fcd4c8b8e99d8190720b0dd.png

7f96873778144c81bf086ec7586a6c03.png

6d6a39da7dc24d33a784e3f8fb1e5fbd.png

 

选2号的草地作品,尝试拼图

43b98ec56fcd4c8b8e99d8190720b0dd.png

28439fe99dcd4187a93c3997297c47a1.png

因为有凹凸角,所以拼图实际大小比A4小很多!

后续玩法:

1、明天先用打印A4纸打印出来,幼儿画的原图和这些拼图都带回去(需要家长裁剪凹凸拼图),亲子一起玩“自制拼图””

2、尝试用厚卡纸打印。

 

标签:8K,20241010,img,拼图,range,path,print,new
From: https://blog.csdn.net/reasonsummer/article/details/142830903

相关文章

  • 20241010 模拟赛
    想看题的戳这里A.植物收集难度:绿先讲一下\(O(n^3)\)的暴力:枚举一下要用多少个\(k\)。将价格排序,假设要用\(x\)个\(k\),则每个数会对其右边\(x\)个数产生贡献,按价格从小到大计算贡献。优化一下,每次增加一个\(k\),则每株植物最多往右边贡献\(1\)个,所以每次往右边枚举......
  • 20241010
    表格游戏我们看到这么小的数据范围,可以想到暴搜,但是时间复杂度来到了\(2^{30}\),考虑折半搜索,那么其实看起来是\(2^{22}\times15\)的,但是实际测评中跑不满,所以可以\(AC\)AdjustThePresentation(EasyVersion)根据题意,他如果给一个人看过了幻灯片,那么这个人可......
  • 20241010
    一、 必看十大类型网站1、数据聚合:大数据导航2、公众号、微博抖音等:清博大数据、微榜、新榜3、浏览数据报告:百度指数、百度搜索、微博指数、360指数、搜狗指数4、研究机构:艾瑞数据、企鹅智库、腾讯研究院、数独、数据局等5、影视综艺分析平台:骨朵数据、猫眼数据分析6、淘......
  • 拼图小游戏
    文章目录前言1项目介绍1.1注册页面1.2登录界面1.3游戏主界面1.3.1功能模块1.3.2查看最终效果和作弊码2.项目实现2.1验证码2.2作弊码3项目代码前言“千官望长安,万国拜含元”   —崔立之《南至隔仗望含元殿香炉》1项目介绍项目包括三个部分注册......
  • 产品技能拼图 - AxureMost
    产品技能拼图-AxureMost产品技能拼图-AxureMost知识库简介-AxureMost技能拼图产品规划产品规划是产品最初也是最重要的阶段此阶段需要完成对产品定位的明确,因为产品定位确定了产品的边界,产品目标用户,产品功能范围,即产品会做什么,不做什么。而产品路标规划,营销策......
  • 正式启用!视爵光旭助力打造华南首座8K XR+VP摄影棚
    视爵光旭x国家超高清视频创新中心华南首个8K超高清XR+VP摄影棚正式启动粤港澳超高清数创园区,是由深圳广电集团·天擎数字、国家超高清视频创新中心、宝视达广告控股合资成立超清数创(深圳)文化科技有限公司共同打造。以“AI+5G+8K”为核心,全面布局影视行业全场景应用产业,打......
  • Hi3559A/C V100 集成了双核 A73 和双核 A53,支持 8K30/4K120 视频录制
    1.1概述Hi3559AV100是专业的8KUltraHDMobileCameraSOC,它提供了8K30/4K120广播级图像质量的数字视频录制,支持多路Sensor输入,支持H.265编码输出或影视级的RAW数据输出,并集成高性能ISP处理,同时采用先进低功耗工艺和低功耗架构设计......
  • jsp城科报名推荐管理系统设计与实现37i8k
    jsp城科报名推荐管理系统设计与实现37i8k本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能用户,省份,高考分数线,院校招生,成绩预估,查询统计技术要求:   开发语言:JSP前端使用:HTML5,CSS,JSP动态......
  • Python制作一个中秋赏月的拼图小游戏
    中秋节是中国四大传统节日之一,主要活动包括赏月、吃月饼、玩花灯、赏桂花、饮桂花酒等。给大家分享用Python制作的一个中秋的拼图小游戏模块安装pipinstallpygame实例代码importpygame,sys,randomfrompygame.localsimport*#一些常量#WINDOW_WIDTH=30#WIND......
  • unity3d拼图__附带资源
    要达到吸附效果则需要每个拼图上挂载碰撞体达到整张图片的替换效果需要选中所有拼图部件把材质球拖上去、制作材料球脚本挂载到随便一个空物体上usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassPinTu:MonoBehaviou......