Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.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
Javascript 浏览器中的三维曲面打印_Javascript_Python_3d_Web - Fatal编程技术网

Javascript 浏览器中的三维曲面打印

Javascript 浏览器中的三维曲面打印,javascript,python,3d,web,Javascript,Python,3d,Web,我有一个python web服务器(cherrypy),我希望用户能够计算这种精确类型的某些曲面。这是我能够从用户输入生成的。他给了我一些参数,我计算我的东西,在服务器上生成PNG(matplotlib/numpy),然后通过JQuery加载返回 问题是,这是相当蹩脚的,表面可以有不同的方面。我希望能够有一个实际的小部件,让用户能够旋转他的表面 我的主要限制是它必须在IE7上工作(8也很酷),并且允许输入我以某种方式计算的数据。我在网上看到了很多只允许输入参数函数的东西。我需要的是能够推入原始

我有一个python web服务器(cherrypy),我希望用户能够计算这种精确类型的某些曲面。这是我能够从用户输入生成的。他给了我一些参数,我计算我的东西,在服务器上生成PNG(matplotlib/numpy),然后通过JQuery加载返回

问题是,这是相当蹩脚的,表面可以有不同的方面。我希望能够有一个实际的小部件,让用户能够旋转他的表面

我的主要限制是它必须在IE7上工作(8也很酷),并且允许输入我以某种方式计算的数据。我在网上看到了很多只允许输入参数函数的东西。我需要的是能够推入原始数据三元组

我一直在研究一些东西,Javascript可能是最好的,但我没有在JQuery或类似的东西中看到一些东西。我确实在WebGL周围看了很长时间,并开始实现一些东西…从零开始。。。但有时IE中的行为太长且随机

也许我完全错过了一些东西,一些与我的python兼容的技术或格式,但在采用临时解决方案(将绘图绘制到PNG)之前,我已经花了好几天时间

期待着看到你们,
提前感谢;)

据我所知,如果您需要IE7兼容性,JS中的大多数可用库都不适合您-它们需要
canvas
或SVG支持。剩下的是静态图像、Flash或Java小程序

我想了解一下,它有很好的3D支持,可以创建用于web的Java小程序。有关交互式三维曲面的良好示例,请参见


如果您想获得更多乐趣,您还可以为支持
canvas
元素的浏览器提供支持。这将避免为这些浏览器加载Java小程序,从而使UI稍微平滑,并消除Java依赖性。您需要检查浏览器兼容性,然后加载applet代码或processing.js代码。这样做的好处是,您应该能够在这两种情况下使用完全相同的处理代码。

让python脚本以json格式返回3D模型的顶点/点,然后使用mrdoob的three.js直接在浏览器中创建一个实时的、支持javascript的3D webGL模型

请在此处查看three.js:

(看看那些令人惊叹的例子,你可能也能从mrdoob那里获得灵感,获得见解……)

编辑:哦,刚刚注意到IE7的要求。没有适用于IE7的webGL:(。您必须使用Flash进行三维渲染。或者让您的python脚本创建不同角度的视图,这些视图可以作为图像加载到浏览器中(例如,用户单击右侧按钮,加载的下一个图像将向右旋转一定角度)

编辑:看起来IEWebGL将为IE7启用webGL


EIDT:processing.js在可视化方面也很不错!

您想使用Pre3d。它不使用WebGL。它使用canvas元素。 这是一个例子


使用explorecanvas向IE添加画布支持。

我正在寻找类似的东西(JS中的等高线图),并遇到了一个看起来在IE6中可以使用的东西(使用excanvas):

它使用谷歌可视化API:

var data = new google.visualization.DataTable();
for (var i = 0; i < numCols; i++) {
    data.addColumn('number', 'col' + i);
}
data.addRows(numRows);
var d = 360 / numRows;
var idx = 0;
for (var i = 0; i < numRows; i++) {
    for (var j = 0; j < numCols; j++) {
        var value = (Math.cos(i * d * Math.PI / 180.0) * Math.cos(j * d * Math.PI / 180.0));
        data.setValue(i, j, value / 4.0);
        tooltipStrings[idx] = "x:" + i + ", y:" + j + " = " + value;
        idx++;
    }
}
var data=new google.visualization.DataTable();
对于(变量i=0;i

<>也许你可以用你的三重数据来加载。

可以是一个要求吗?嗯,我在考虑这个问题,一个论坛上有一个家伙对使用WebGL的最好方法做了一个很好的总结,Chrome Frand被评为一个和IEWebGL一样好的解决方案。我不能认为它很难,因为我需要一个安装更少的方法…抱歉。)值得一试。还有,如果我发现IEWebGL在IE7上运行得很好,请检查这里的示例,有些示例非常好,但是深入代码并不好,缺少注释,但是这个网站还很年轻:iewebgl.com/我认为你最好的办法是弄清楚json是如何工作的,以及如何通过HTTP GET或POST请求从服务器检索json。这大概就是我所想的,尽管excanvas.js和iewebgl确实有点帮助。您能推荐一些关于如何在这样的Flash或Java组件中加载输入的工具和技巧吗?我关心的是如何从python中实现这一点。我相信您可以使用processing的函数从同一站点的URL加载内容。因此,您可以使用python以某种基于文本的格式为数据提供API。我将更多地关注processing.js,尽管这似乎意味着要开发自己的surfaces绘图。。。你知道有没有一个项目能呈现出我想要的东西吗?我不知道,但这并不意味着没有。处理的优势在于自定义可视化,人们倾向于将其用于特殊项目。但这里可能有一些东西:作为结论,我没有去任何这些技术。我正在用Java开发一个定制的小程序。我将留下入口点来指定从中获取不同数据的url。我这么做是因为用Java开发很容易,在Eclipse这样的工具中调试也很容易,把XML放到我的应用程序中也很容易理解。制作它的人没有添加对IE的支持,也许有一个隐藏的原因?顺便说一句,我仍然没有解决这个问题的方法。我暂时切换到Javaapplets+javascript来处理事件。