python - 算法:用枕头创建六边形

标签 python algorithm python-imaging-library

我正在尝试在 32 x 32 图像上创建数量均匀的六边形。我一直在尝试想出一个可行的算法,但一直没能想出任何好东西。这是我到目前为止想出的

for i in range(0,20):
    im = Image.new("1",(400,400))
    draw = ImageDraw.Draw(im)
        for j in range(i, 20):
           if i > 3 and j > 3:
           half = i/2
           difference = i-half
           z = half/2
           draw.polygon([(z/3,i),(z,half),(z*3,half),(i,i),(z*3,i+difference),(z,i+difference)], fill="white")
           im.show()

这个算法的问题是变量 z 为 0(或非常接近),除非你得到相当大的数字,不幸的是我在我的情况下受到限制。六边形不需要是规则的,它们只需要“看起来”像六边形即可。

非常感谢任何帮助

最佳答案

如果出于某种原因,有人遇到过类似的问题,这就是我想出的。如果有人能想出更快的解决方案,请不要犹豫发布。

   for i in range(0,pixels):
    im_rect = Image.new("1", (pixels,pixels))
    draw_rect = ImageDraw.Draw(im_rect)
    for j in range(i, pixels):
        for x in range(i,pixels - i):
            for y in range(j,pixels -j):
                if i > 3 and j > 3 and i +(3*x) < pixels and y+j < pixels:
                    draw.polygon([(i,j),(i+x,y-j),(i+x+x,y-j),(i+(3*x),j),(i+x+x,y+j),(i+x,y+j)], fill="white")

关于python - 算法:用枕头创建六边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50888786/

相关文章:

python - 将 jpg 转换为灰度

python - 将漂亮的表格输出保存为 Pandas 数据框

c# - 过滤一组包含其他短语的所有短语的算法

python - 在 Kivy Canvas 上显示 PIL 图片

java - 二维数组,使用 HashMap 的最佳平均计算器

java - 如何为每个数据中心选择备用机器?

python - 导入PIL失败

python - 我究竟做错了什么?使用 lxml 解析 HTML

python - 树莓派串口通信-python写命令问题

python - 检查代码与 Python 2 和 3 的兼容性