Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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 在浏览器中渲染巨大的交互式SVG_Javascript_Svg_Web_Buffer_Autocad - Fatal编程技术网

Javascript 在浏览器中渲染巨大的交互式SVG

Javascript 在浏览器中渲染巨大的交互式SVG,javascript,svg,web,buffer,autocad,Javascript,Svg,Web,Buffer,Autocad,我们必须在web应用程序中显示巨大的SVG文档(大约20mb)。用户应该能够放大和移动图像 将SVG直接呈现为DOM对象的速度太慢,并且性能不一致。这同样适用于在画布上绘制它 通常,在客户端处理SVG似乎很弱。因此,我考虑实现一个服务器端解决方案,以非矢量格式提供小块数据。如果用户没有与文档交互,缓冲区将开始延迟加载更详细的片段。我对这个解决方案的担忧是,网络流量可能非常关键 我们将渲染2D DWG/DXF文件,这些文件将转换为SVG AutoCAD API似乎非常慢。DWG示例在我们的任何设备

我们必须在web应用程序中显示巨大的SVG文档(大约20mb)。用户应该能够放大和移动图像

将SVG直接呈现为DOM对象的速度太慢,并且性能不一致。这同样适用于在画布上绘制它

通常,在客户端处理SVG似乎很弱。因此,我考虑实现一个服务器端解决方案,以非矢量格式提供小块数据。如果用户没有与文档交互,缓冲区将开始延迟加载更详细的片段。我对这个解决方案的担忧是,网络流量可能非常关键

我们将渲染2D DWG/DXF文件,这些文件将转换为SVG

AutoCAD API似乎非常慢。DWG示例在我们的任何设备上都不起作用。此外,应用程序必须在没有internet连接的情况下运行,因此我们不能使用AutoCAD REST API


你将如何解决这个问题?浏览器是为处理巨大的矢量图形而构建的吗?

说到SVG,它取决于节点数量、渐变、不透明度和模糊效果;但是,为什么不使用最终用户的图形加速器来处理这个问题呢

大多数现代web浏览器都是通过WebGL来支持图形加速的——通过WebGL,您可以构建非常复杂(和“巨大”)的2D(或3D)丰富图形,并以图形加速器能够处理的速度处理这些图形;就像现代游戏一样

如果已经为您完成了大量工作,建议使用WebGL库:

  • PlayCanvas:--您可以导入其他格式,使用友好的界面构建和编写场景脚本。PlayCanvas有很好的文档记录

  • Three.js:一个面向编码人员的高级WebGL库。ThreeJS还可以处理许多不同类型的3D格式,这个库也有很好的文档记录

使用Three.js,您还可以将图形渲染为SVG,但是,建议使用WebGL,因为它在速度和质量方面具有明显的优势

这两个库都非常强大,有一个活跃的社区,并且在现代web浏览器中得到很好的支持;然而,还有许多其他的你可以尝试


有关上述库的更多信息,最好访问提供大量信息和示例的网站。

说到SVG,它取决于节点数量、渐变、不透明度和模糊效果;但是,为什么不使用最终用户的图形加速器来处理这个问题呢

大多数现代web浏览器都是通过WebGL来支持图形加速的——通过WebGL,您可以构建非常复杂(和“巨大”)的2D(或3D)丰富图形,并以图形加速器能够处理的速度处理这些图形;就像现代游戏一样

如果已经为您完成了大量工作,建议使用WebGL库:

  • PlayCanvas:--您可以导入其他格式,使用友好的界面构建和编写场景脚本。PlayCanvas有很好的文档记录

  • Three.js:一个面向编码人员的高级WebGL库。ThreeJS还可以处理许多不同类型的3D格式,这个库也有很好的文档记录

使用Three.js,您还可以将图形渲染为SVG,但是,建议使用WebGL,因为它在速度和质量方面具有明显的优势

这两个库都非常强大,有一个活跃的社区,并且在现代web浏览器中得到很好的支持;然而,还有许多其他的你可以尝试


有关上述库的更多信息,最好访问提供大量信息和示例的网站。

我建议您使用,而不是自己实现,这也适用于具有完整功能的开发人员

基本上,该库会将DWG文件(2D或3D)转换为JSON流,并根据浏览器/设备功能调整数据量。它使用,但不需要直接处理几何体(但可以)

检查样品。我更喜欢


您还可以使用NodeJS在本地运行它,以将其发送到浏览器。完成整个过程。

我建议您使用,而不是自己实现,这也适用于具有完整功能的开发人员

基本上,该库会将DWG文件(2D或3D)转换为JSON流,并根据浏览器/设备功能调整数据量。它使用,但不需要直接处理几何体(但可以)

检查样品。我更喜欢


您还可以使用NodeJS在本地运行它,以将其发送到浏览器。整个过程都由工程师来完成。

谢谢你的回答,奥古斯托。2D样本似乎根本不起作用。我们需要一个可靠的解决方案。演出真的很糟糕。也许几年后,这个API将是一个很好的解决方案。@ChristophBühler,如果你有一个不起作用的示例,我很想知道为什么。。。如果可能,请分享(无论是原创或观众链接)我真的很感谢你的工作!锻造平台是巨大的。它在旧机器上的运行速度通常很慢(我打赌它在我的私人电脑上运行会很好)。我们所需要的只是一个互动的2D可视化,它可以在没有互联网连接的情况下运行。AutoCAD SDK是否可以实现这一点?我想发送一个链接,但Chrome在加载查看器的过程中死掉了。你能发送一个工作的2D示例吗?也许,我只是点击了错误的链接。我用extract sample编辑了我的答案,它可以脱机运行,也可以在本地服务器中运行。IE有一些ActiveX插件,但我们不再推荐它(传统技术),谢谢你的回答,Augusto。2D样本似乎根本不起作用。我们需要一个可靠的解决方案。演出真的很糟糕。也许几年后,这个API将是一个很好的解决方案。@ChristophBühler,如果你有一个不是的示例的话