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