Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.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三维曲面图_Android_3d_Opengl Es - Fatal编程技术网

Android三维曲面图

Android三维曲面图,android,3d,opengl-es,Android,3d,Opengl Es,我的要求是从数据点(x y z)值列表创建一个3d曲面图(还应显示x y z轴)。3d可视化应在ANDROID上完成 我的输入:目前计划使用OpenGL 1.0和java。我也在考虑使用OpenGL 1.0的Adore3d、min3d和rgl软件包。擅长java,但不擅长3d编程。 时限:2个月 我想知道最好的方法是什么?opengl 1.0是否适用于3d曲面绘制?是否有其他可与Android一起使用的软件包/库?好的,您可以使用opengl 1.0或opengl 2.0绘制曲面。你需要做的就是

我的要求是从数据点(x y z)值列表创建一个3d曲面图(还应显示x y z轴)。3d可视化应在ANDROID上完成

我的输入:目前计划使用OpenGL 1.0和java。我也在考虑使用OpenGL 1.0的Adore3d、min3d和rgl软件包。擅长java,但不擅长3d编程。
时限:2个月


我想知道最好的方法是什么?opengl 1.0是否适用于3d曲面绘制?是否有其他可与Android一起使用的软件包/库?

好的,您可以使用opengl 1.0或opengl 2.0绘制曲面。你需要做的就是把轴画成线,把曲面画成三角形。如果您有heightfield数据,您可以执行以下操作:

float[][] surface;
int width, height; // 2D surface data and it's dimensions

GL.glBegin(GL.GL_LINES);
GL.glVertex3f(0, 0, 0); // line starting at 0, 0, 0
GL.glVertex3f(width, 0, 0); // line ending at width, 0, 0
GL.glVertex3f(0, 0, 0); // line starting at 0, 0, 0
GL.glVertex3f(0, 0, height); // line ending at 0, 0, height
GL.glVertex3f(0, 0, 0); // line starting at 0, 0, 0
GL.glVertex3f(0, 50, 0); // line ending at 0, 50, 0 (50 is maximal value in surface[])
GL.glEnd();
// display the axes

GL.glBegin(GL.GL_TRIANGLES);
for(int x = 1; x < width; ++ x) {
    for(int y = 1; y < height; ++ y) {
        float a = surface[x - 1][y - 1];
        float b = surface[x][y - 1];
        float c = surface[x][y];
        float d = surface[x - 1][y];
        // get four points on the surface (they form a quad)

        GL.glVertex3f(x - 1, a, y - 1);
        GL.glVertex3f(x, b, y - 1);
        GL.glVertex3f(x, c, y);
        // draw triangle abc

        GL.glVertex3f(x - 1, a, y - 1);
        GL.glVertex3f(x, c, y);
        GL.glVertex3f(x - 1, d, y);
        // draw triangle acd
    }
}
GL.glEnd();
// display the data
float[][]曲面;
整数宽度,高度;//二维曲面数据及其尺寸
总帐总帐开始(总帐总帐行);
GL.glVertex3f(0,0,0);//从0,0,0开始的行
GL.glVertex3f(宽度,0,0);//以宽度0结尾的行,0,0
GL.glVertex3f(0,0,0);//从0,0,0开始的行
GL.glVertex3f(0,0,高度);//以0、0、高度结尾的线
GL.glVertex3f(0,0,0);//从0,0,0开始的行
GL.glVertex3f(0,50,0);//以0,50,0结尾的线(50是曲面[]中的最大值)
GL.glEnd();
//显示轴
GL.glBegin(GL.GL_三角形);
对于(int x=1;x

这将绘制简单的轴和高度场,全部为白色。从这里开始扩展应该很简单。

关于你问题的第二部分:

还有其他可以与Android一起使用的软件包/库吗

是的,现在可以用SciChart绘制Android 3D曲面图

许多配置都是可能的,包括绘制线框、渐变色贴图、轮廓和实时更新


披露,我是scichart团队的技术负责人

欢迎来到SO!你的问题太广泛,涉及的任务太多,无法获得高质量的回答。我建议重构你的问题,一次只关注一个部分。嗨,justnS,谢谢。我将我的问题重新表述为一个特定的问题。谢谢你的帮助。由于我使用java,我将尝试转换你的代码并执行它。我会在看到输出后与你联系。非常感谢。PS:(你能告诉我你是否有这个代码片段的java版本吗?)。您可能需要将“GL”替换为您的OpenGL上下文变量名(前提是您使用的是OpenGL ES 1.0)。谢谢!以你的例子,我能够生成一些二维曲面图。我对使用(x,y,z)生成三维曲面图感兴趣点。您是否能够帮助提供一个使用opengl Android生成3d曲面的示例?您的意思是您有一组3d点,并且希望显示一个包裹这些点的等值面?:是的。我想是等值面吧!我想连接一组3d点(长x宽x高)以形成3d曲面/地形。每个点的颜色由另一个参数给定。我想把显示不同地区的相似颜色的点连接起来。人们问答案,我们给他们答案,然后被否决。除了开源之外,还有其他值得分享的解决方案!