gpt4 book ai didi

python - 光栅扫描模式 python

转载 作者:太空宇宙 更新时间:2023-11-03 18:39:23 25 4
gpt4 key购买 nike

我正在尝试创建代表光栅扫描模式的 xy 位置列表,如下所示:

enter image description here

简单地说,我正在使用嵌套循环和 if else 语句,但它变得困惑。有没有一种简单的方法生成具有固定步长的位置列表?

最佳答案

一种可能的解决方案,混合使用 Numpy 和普通 Python:

from pylab import *

# define some grids
xgrid = arange(20, 31)
ygrid = arange(10, 16)

xscan = []
yscan = []

for i, yi in enumerate(ygrid):
xscan.append(xgrid[::(-1)**i]) # reverse when i is odd
yscan.append(ones_like(xgrid) * yi)

# squeeze lists together to vectors
xscan = concatenate(xscan)
yscan = concatenate(yscan)

# quick plot
plot(xscan, yscan, '.-')
axis([19, 31, 9, 16])
show()

其工作方式是为 x 和 y 定义 2 个空列表,一次向其中附加一个扫描线。对于 x 坐标,您需要一条向前线和一条向后线(xgrid[::1] 表示向前,xgrid[::-1] 表示向后,交替的 +1-1 是通过 (-1)**i 获得的,而对于 y 坐标,你必须重复每个 x 坐标有一个 y 值。最后,你必须concatenate将向量列表转换为单个向量。

使用列表理解和 repeat 无需任何 for 循环即可实现相同的效果,像这样:

xscan = concatenate([xgrid[::(-1)**i] for i in range(len(ygrid))])
yscan = repeat(ygrid, len(xgrid))

生成的扫描模式: raster scan

关于python - 光栅扫描模式 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20872912/

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