如何在javascript中构建交互式3D图形

时间:2018-05-01 17:57:02

标签: javascript data-visualization

我正在建立一个互动的体育图形网站,我最近遇到this great 3D baseball vis tool,我很好奇如何制作这样的东西。特别是,我想建立一个类似的篮球工具(显示射门轨迹)。

我不认为stackoverflow是发布此帖子的最佳位置,但我不知道还能在哪里提问。请随意指出我正确的方向,或者如果帖子没问题,我很高兴听到人们对如何构建这样的工具的想法。

提前致谢!!

编辑:对于那些对这些类型的图表感兴趣/感兴趣的人,这是同一网站上的另一个工具that shows homeruns hit

1 个答案:

答案 0 :(得分:1)

如果您有很多精灵/多边形,请使用 webgl-canvas 。如果您不想直接使用它,那么有许多库可以让您的生活更轻松,例如 pixie.js(2D) three.js

如果你没有太多的多边形(< ~2000 ),你仍然可以使用 svg 。如果你这样做,你最好的选择是点云(带有圆圈的散点图)或多边形,你可以将点保持在元素上,这样你就可以了可以根据需要旋转它们并设置points属性/属性(如果你使用d3,它会将它添加到__data__属性中的元素):

polygon.__points = [[x1,y1]..];

你可以使用euclidian获得3*3 matrix角度或使用quaternions(更快一点,避免万向节锁定)。最有可能的是,你的瓶颈不是这些,而是​​ DOM操作。这是我的一个项目的例子,它有点旧(大约6 - 7年),但仍然可以证明这个想法(链接打开时点击左下角的图标):

http://www.i-pv.org/1_45/NFKB1

what it looks like

简而言之,如果您要使用fps和着色,请转到webgl。