gpt4 book ai didi

python - 如何在 Processing 中编码固定数量的半随机间隔且仍然适合固定大小图像的行?

转载 作者:行者123 更新时间:2023-12-03 23:02:33 25 4
gpt4 key购买 nike

我对堆栈溢出和一般编程都很陌生。我正在大学学习 Python 基础类(class),我很快就要交一个最终项目。我决定尝试在 Processing 中以 Python 模式制作一些生成艺术。我的计划是使用不同长度、高度和颜色的线条创建城市天际线的基本(抽象)图像,线条之间有一些半随机间距。我已经编写了一些代码,可以在一定程度上做到这一点。但是,我正在努力以一种遵守我在开始时定义的一些全局变量的方式编写它。我确实可能得到 50 行,但它们没有覆盖整个图像并且经常相互重叠,因此很难区分它们。另外,我想合并一些代码来指定建筑物的结束位置,以在图像的左侧和右侧获得均匀的空白空间。我尝试为此使用 building_start 和 building_end 变量,但显然我在建筑物之间添加分隔的方法已关闭。你能帮我解决这个问题吗?
提前致谢。代码及其输出如下所示。

import random as rd
w, h = 1000, 500
building_start = 25
building_end = 975
n_buildings = 50
building_sep = (building_end - building_start)/(n_buildings*1.2)
roof_style = [ROUND, SQUARE]

def setup():
size(w,h)
background(60, 60, 60)

building_x = building_start
building_y = 500

for i in range(n_buildings):
building_x = building_sep * i
building_top = rd.randrange(50, 370, 10)

line(building_x, building_y, building_x, building_y - building_length)
stroke(rd.randint(200, 255), rd.randint(200, 255), rd.randint(200, 255))
strokeWeight(rd.randrange(10, 28, 2))
strokeCap(rd.choice(roof_style))

noFill()
rect(0, 0, 1000, 500)
stroke(255, 247, 247)
the output of the code

最佳答案

如果你希望没有重叠,你可以尝试实现这个算法:
enter image description here
另一个类似的算法:如果你需要N宽度内的建筑物 W , 你让 N*2-1具有总宽度的建筑物 W并每隔一栋楼就拆除一次。该算法的缺点:空间和建筑物的宽度大致相同。

关于python - 如何在 Processing 中编码固定数量的半随机间隔且仍然适合固定大小图像的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64729305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com