【问题标题】:Rotating shapes with zelle (in python)用 zelle 旋转形状(在 python 中)
【发布时间】:2022-01-25 13:27:07
【问题描述】:

我做了一个代码(使用John Zelles的图形模块和python 3.10.0),它工作得很好,但问题是它需要逆时针旋转90度,我不知道该怎么做它。我已经发布了一张我得到的最终结果与它应该是什么样子的图片。

左边是我做的,右边是应该的样子。

这是我的代码

win= GraphWin("",100,100)
p1=Point(0,100)
p2=Point(100,0)



for i in range (0,100,10):

    x1=int(p1.getX())
    y1=int(p1.getY())
    x2=int(p2.getX())
    y2=int(p2.getY())
    s= Rectangle(Point(x1,y1-i), Point(x2-i,y2))

    if (i==90 or i==70 or i==50 or i==30 or i==10):
        s.setFill("red")
        s.draw(win)
        s.setOutline("red")

    else:
        s.setFill("white")
        s.draw(win)
        s.setOutline("white")

`

【问题讨论】:

    标签: python python-3.x zelle-graphics


    【解决方案1】:

    您无需旋转它,只需将其向上翻转即可。您只需要更改 y 轴方向,或使用负 y 轴值。

    所以,

    ...
        y1=-int(p1.getY())
        x2=int(p2.getX())
        y2=-int(p2.getY())
    ...
    

    应该可以解决问题。不确定您使用哪个库,可能有一种方法可以指定 y 轴方向(在对 GraphWin 的调用中可能吗?),或者根据 Reverse Y-Axis in PyPlot 恢复 y 轴方向。

    屏幕坐标大部分时间从屏幕的左上角开始,x 向右递增,y 向下递增。

    【讨论】:

    • 谢谢,它成功了,必须将 y1 设为负数(y2 为 0,所以没有必要)并将形状移动到点 0,100。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多