编程语言
首页 > 编程语言> > java-向后画圆弧?

java-向后画圆弧?

作者:互联网

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

我期望的图像:

我得到的图像:

解决方法:

这是在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的弧相同.

标签:swing,awt,slick2d,opengl,java
来源: https://codeday.me/bug/20191121/2054726.html