我正在建立一个互动的体育图形网站,我最近遇到this great 3D baseball vis tool,我很好奇如何制作这样的东西。特别是,我想建立一个类似的篮球工具(显示射门轨迹)。
我不认为stackoverflow是发布此帖子的最佳位置,但我不知道还能在哪里提问。请随意指出我正确的方向,或者如果帖子没问题,我很高兴听到人们对如何构建这样的工具的想法。
提前致谢!!
编辑:对于那些对这些类型的图表感兴趣/感兴趣的人,这是同一网站上的另一个工具that shows homeruns hit
答案 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
简而言之,如果您要使用fps和着色,请转到webgl。