我试图在已知斜率的两条直线之间创建一个平滑曲线,我找到了一个方程来找到这两个点,但当我尝试找到每个点的角度时,弧线不对齐。我已经做了计算,但它(应该)是正确的。
def angle(A,B):
o = abs(B[1]-A[1])
a = abs(B[0] - A[0])
angle = math.atan(o/a)
return angle
a1 = angle((250, 175),(75, 300))
a2 = angle((250, 175),(400, 315))
pygame.draw.arc(gameDisplay, WHITE, (0 ,0 ,500,350), (math.pi) + a2,(2*math.pi) - a1)
pygame.draw.line(gameDisplay, BLUE, [400,0], [400, 500], 1)
pygame.draw.line(gameDisplay, BLUE, [0,315], [1000, 315], 1)
pygame.draw.line(gameDisplay, RED, [75,0], [75, 500], 1)
pygame.draw.line(gameDisplay, RED, [0,300], [1000, 300], 1)
以下是查找起始角度和结束角度的基本代码,其中 (250,175) 是椭圆的中心点,(75, 300) 和 (400, 315) 是两个点。线条表示弧应该开始和结束的位置。
math.atan
只有 pi 弧度(180 度)的范围。要获得完整的 360 度,您应该使用math.atan2(delta_y, delta_x)
。arc
调用中的那些加减也让我感到可疑。 - interjay