我正在移植一些Slick Graphics类来使用AWT,但我遇到了一个问题。光滑,在OpenGL上运行,顺时针绘制弧线。 AWT将它们定义为逆时针绘制,就像在数学中一样。我想知道如何逆时针绘制Slick的圆弧,以便它与AWT匹配。
我期待的图像:
我得到的图像:
答案 0 :(得分:3)
这是在Slick2D中绘制弧的功能:
public void drawArc(float x1,
float y1,
float width,
float height,
float start,
float end)
由于Slick看起来顺时针(0 - 360度)绘制这些弧线,所以你可以做一些简单的算术来获得你想要的效果。
A和B是您希望在0到90度之间绘制弧线的原始角度。 drawArc(0,0,1,1,A,B)
将呈现从A到B的弧,但我们想要一个从C到D的弧,它与A到B的弧相同,但是反时钟。由于您已经知道A和B的值(如0和90),您可以使用以下内容获取C和D的值:
C = 360 - B
D = 360 - A
现在我们可以使用drawArc(0,0,1,1,C,D)
。
使用值进行测试:
A = 0
B = 90
C = 360 - 90 = 270
D = 360 - 0 = 360
这将绘制一个从270到360的弧,这与0到90逆时针的弧相同。