在拱门上找到 x 和 y
Find x and y on arch
大家好。我的数学不是很好,所以我需要帮助在 Python 中编写一个函数。有一个拱门,我需要知道拱门上每个像素的 x
和 y
。我拥有的所有数据,我都写在了图片中。让我知道是否需要进一步澄清。
有了弧长和半径,我们可以找到以弧度为单位的弧角
fi = L/R= 366.5/350 (60 degrees, BTW)
半角
hf = fi/2 = 366.5/700 (30 degrees)
圆心坐标
cx = R * sin(hf) = 350*1/2 = 175
cy = R * cos(hf) = 350*0.866 = 303.1
现在我们可以循环获取具有给定分辨率和起始角度 -Pi/2-Pi/6
的像素坐标(一般情况下 -Pi/2-hf
)
for i in range(2220):
an = -math.pi*2/3 + i * 366.5/350 / 2220
x = cx + R * math.cos(an)
y = cy + R * math.sin(an)
更正您的代码:
cx = radius * math.sin(hf)
cy = -radius * math.cos(hf)
xl.append(cx + radius * math.cos(an))
yl.append(cy - radius * math.sin(an))
大家好。我的数学不是很好,所以我需要帮助在 Python 中编写一个函数。有一个拱门,我需要知道拱门上每个像素的 x
和 y
。我拥有的所有数据,我都写在了图片中。让我知道是否需要进一步澄清。
有了弧长和半径,我们可以找到以弧度为单位的弧角
fi = L/R= 366.5/350 (60 degrees, BTW)
半角
hf = fi/2 = 366.5/700 (30 degrees)
圆心坐标
cx = R * sin(hf) = 350*1/2 = 175
cy = R * cos(hf) = 350*0.866 = 303.1
现在我们可以循环获取具有给定分辨率和起始角度 -Pi/2-Pi/6
的像素坐标(一般情况下 -Pi/2-hf
)
for i in range(2220):
an = -math.pi*2/3 + i * 366.5/350 / 2220
x = cx + R * math.cos(an)
y = cy + R * math.sin(an)
更正您的代码:
cx = radius * math.sin(hf)
cy = -radius * math.cos(hf)
xl.append(cx + radius * math.cos(an))
yl.append(cy - radius * math.sin(an))