Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android opengl中的线宽限制_Android_Opengl Es - Fatal编程技术网

Android opengl中的线宽限制

Android opengl中的线宽限制,android,opengl-es,Android,Opengl Es,我正在尝试构建一个android应用程序,用opengl显示地理数据(如谷歌地图),opengl在绘制线条时似乎对线条宽度有限制: gl.glLineWidth(10); //or gl.glLineWidth(20); ...... gl.glDrawArrays(GL10.GL_LINES, 0, 2); 这就是我得到的: 这似乎是opengl渲染的线条的最大宽度 然而,当我看到谷歌地图时,我发现它可以为这样的道路绘制一条宽得多的线: 有

我正在尝试构建一个android应用程序,用opengl显示地理数据(如谷歌地图),opengl在绘制线条时似乎对线条宽度有限制:

        gl.glLineWidth(10); //or gl.glLineWidth(20);
        ......
        gl.glDrawArrays(GL10.GL_LINES, 0, 2);
这就是我得到的:

这似乎是opengl渲染的线条的最大宽度

然而,当我看到谷歌地图时,我发现它可以为这样的道路绘制一条宽得多的线:

有什么问题吗


顺便说一句,我想知道在我的应用程序中是否需要使用游戏引擎?

是的,OpenGL实现对线宽有限制。我认为,执行情况各不相同。有几个选项,但最简单的一个是只绘制一个矩形,该矩形与您需要的高度相同,并从a点延伸到B点。例如,如果您需要50点的线宽,你可以找到从A到B的向量,然后沿着向量的法线在端点投影+25点和-25点,得到矩形的4个角。

谢谢,事实上我听说人们用矩形代替直线,但是直线很简单,曲线很容易计算向量,我想这很难。此外,处理线条的连接和封口也不容易,不是吗?@hguser你说得对,所有这些二维图形细节都没有在Opengl中实现,但库是存在的,(cairo,glamor,…)。如果您需要绘制精细的二维矢量图形,请尝试在这样的库中挖掘一些。@j-p:事实上,我已经尝试了
libgdx
,但它似乎不支持绘制宽线:(@hguser try cairo,它们有加速表面(我目前正在测试它们的加速程度)而且是可移植的。它是开源中的一个主要堆栈systems@hguser是的,但是这只是一个小的Android测试,你可以通过Android在Android上使用开罗,或者你可以在NC++中用NANK来帮助你的助手LIBS。也许开罗已经有一些java绑定了,我从来没有搜索过它们。