摩天轮动画(让事物围成一圈)蟒蛇

时间:2014-10-04 07:39:22

标签: python windows animation geometry

我正在尝试制作一个摩天轮动画(在实践中用于面向对象的编程),但我正在努力让车轮转向。

#ferris wheel(circle)
pygame.draw.circle(screen, blue, [250,250],150, 8)

#carriage
pygame.draw.polygon(screen, yellow, [[220+cx,385+cy],[280+cx,385+cy],[270+cx,400+cy],[230+cx,400+cy]],0)

def carriagemovement(top,bottom):

global cx
global cy
top = 0
bottom = 1
if bottom == 1:
    if cx == 0 or cx < 80:
        cx = cx + 4
        cy = cy - 1
        print(cx)
else:
    if bottom == 1:
        if cx == 80 or ( cx > 80 and cx < 148):
            cx = cx + 4
            cy = cy - 3
            print (cx)
    else:
        if bottom ==1:
            if cx == 148 or (cx > 148 and cx < 159):
                cx = cx + 0.5
                cy = cy - 3
                print (cx)
        else:
            top = 1
            bottom = 0
            if top == 1:
                if (cx == 159 and top == 1) or (cx < 159 and top == 1):
                    cx = cx - 0.5
                    cy = cy - 3
                    print (cx)

carmovement()就是我现在正在做的方式(但是由于if语句而且由于我修正了它(使用顶部和底部),它会离开圆圈,它只是停止了)。

是否有一个我不使用的功能或方法会让它变得更容易?还有另一种方式吗?

感谢!!!

1 个答案:

答案 0 :(得分:0)

将问题从“x,y”笛卡尔坐标转换为“角度,距离”极坐标可能更直观。然后围绕圆圈移动,您只需增加角度。如果你想从中获得x,y值,你可以使用三角函数(正弦/余弦)简单地转换它们。