向后画弧?

时间:2014-04-23 04:06:43

标签: java swing opengl awt slick2d

我正在移植一些Slick Graphics类来使用AWT,但我遇到了一个问题。光滑,在OpenGL上运行,顺时针绘制弧线。 AWT将它们定义为逆时针绘制,就像在数学中一样。我想知道如何逆时针绘制Slick的圆弧,以便它与AWT匹配。

我期待的图像:

http://i.imgur.com/mmMHjhU.png

我得到的图像:

enter image description here

1 个答案:

答案 0 :(得分:3)

这是在Slick2D中绘制弧的功能:

public void drawArc(float x1,
                    float y1,
                    float width,
                    float height,
                    float start,
                    float end)

由于Slick看起来顺时针(0 - 360度)绘制这些弧线,所以你可以做一些简单的算术来获得你想要的效果。

enter image description here

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逆时针的弧相同。