📜  肥皂信封 (1)

📅  最后修改于: 2023-12-03 14:57:05.444000             🧑  作者: Mango

肥皂信封

肥皂信封是一种有趣的纸艺手工制品,通常由老报纸等废弃物料制成。通过把废报纸剪成小块、卷起来、编织或者塑造等方式,将废纸变成美丽、实用的信封。随着环保意识的普及,越来越多的人开始尝试制作肥皂信封。这里为您介绍如何用程序代码实现肥皂信封的制作过程。

准备工作

首先,我们需要准备一些废报纸、剪刀、胶水、笔、尺子等制作工具。在这里,我们使用Python语言来实现肥皂信封的制作。

制作过程
1. 切割废报纸

首先,我们需要将废报纸切成合适大小的长方形。通过代码实现:

length = 18   # 长度
width = 10    # 宽度
paper = [[0 for i in range(width)] for j in range(length)]

上述代码定义了一个18 x 10大小的长方形,其中paper为废报纸的列表表示。

2. 折叠成三角形

将长方形对角线对折成三角形,并按折痕处将三角形对角线处的底边一分为二,制成两个小三角形。

from math import sqrt

# 三角形等分
def tri_split(tri_list, x, y):
    tri_list[x][y+2] = tri_list[x+1][y+2] = 1
    for i in range(1, y+2):
        tri_list[x+i][y+2+i] = tri_list[x+i+1][y+1+i] = 1
    return tri_list

# 对角线等分
def dia_split(tri_list, t):
    for i in range(t):
        for j in range(t-i):
            tri_list = tri_split(tri_list, i, 2*j)
    return tri_list

# 生成三角形
def generate_tri(length, width):
    tri = [[0 for i in range((width-1)*2+1)] for j in range(length)]
    tri_list = dia_split(tri, length)
    return tri_list

tri_list = generate_tri(length, width)

上述代码实现了对三角形等分以及对角线等分的操作。tri_list为三角形的列表表示。

3. 编织肥皂信封

将两个小三角形交织编织成肥皂信封的形状,并粘合。

# 交织编织
def braiding(tri_list):
    braiding_list = [[0 for i in range(len(tri_list[0]))] for j in range(len(tri_list))]
    for i in range(len(tri_list)):
        for j in range(len(tri_list[0])):
            if tri_list[i][j] == 1:
                braiding_list[i][j] = 1
    for i in range(len(tri_list)):
        for j in range(len(tri_list[0])):
            if tri_list[i][j] == 1:
                braiding_list[i][len(tri_list[0])-j-1] = 1
    return braiding_list

# 制作肥皂信封
def make_envelope(tri_list):
    envelope_list = [[0 for i in range(len(tri_list[0]))] for j in range(len(tri_list))]
    for i in range(len(tri_list)):
        for j in range(len(tri_list[0])):
            if (i+j)%4 == 0 and tri_list[i][j] == 1:
                envelope_list[i][j] = 1
    return envelope_list

braiding_list = braiding(tri_list)
envelope_list = make_envelope(braiding_list)

上述代码实现了交织编织以及制作肥皂信封的过程。braiding_list为交织编织后的列表表示,envelope_list为肥皂信封的列表表示。

4. 打印肥皂信封

最后,将肥皂信封的图案打印出来,形成肥皂信封。

# 打印肥皂信封
def print_envelope(envelope_list):
    for i in range(len(envelope_list)):
        for j in range(len(envelope_list[0])):
            if envelope_list[i][j] == 1:
                print("*", end="")
            else:
                print(" ", end="")
        print()

上述代码实现了打印肥皂信封的过程。调用print_envelope(envelope_list)函数即可打印出肥皂信封的图案。

结论

肥皂信封的制作过程需要先将废报纸进行切割,将长方形折叠成三角形,然后将两个小三角形交织编织成肥皂信封的形状,并最后粘合成为肥皂信封。通过Python编写的程序,可以实现自动制作肥皂信封的功能。