使用 zelle 旋转形状(python)

Rotating shapes with zelle (in python)

我做了一个代码(使用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")

`

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

所以,

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

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

恢复 y 轴方向

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