我想有效地找到由圆周和图像(圆的原点在图像之外)的交点描述的线的坐标。现在我在python中使用一个循环从图像的一个边缘开始,一次一步地移动图像。每一步移动一定距离(比如0.01英寸)。我计算移动该距离所需的角度,然后使用极坐标几何公式来定义下一个像素坐标。这一切都很好,但需要很长时间。随着圆的半径增加,我在图像中创建了许多这些线。
有没有办法使用内置函数或基于数组的公式,以便我不必在算法中有这么多步骤?基本上,在python 2中实现这一目标的最有效方法是什么?
谢谢, RB3
答案 0 :(得分:0)
# circle parameters
x0 = -5
y0 = -5
R = 25
# image size
max_x = 100
max_y = 100
# sample points
theta = np.linspace(0, 2*np.pi, 2048) # make bigger if you have huge images
# the pixels that get hit
xy = list(set([xy for xy in zip( (R * cos(theta) - x0).astype(int), (R * sin(theta) - y0).astype(int)) if
xy[0] >= 0 and xy[0] < max_x and xy[1] >= 0 and xy[1] < max_y]))