问题:我必须为一些点绘制一个简单的3D图形/图表,其中包含x,y,z坐标。 我的目标是将这个3D diagramm导出到svg - >我将不得不做一个投影,因为svg还不能(还)能够处理3D。
所以我的输入是带有x,y,z坐标的3D图形,输出是缩小为x,y坐标的2D视图。
有没有人知道(喜欢小的)java lib之类的 this one for javascript?
投影可能只是point3d到point2d。这就是我真正需要的。
谢谢!
答案 0 :(得分:0)
看看JFreeChart。请查看Batik以将其保存为SVG
答案 1 :(得分:0)
如果您需要的只是简单的话,我可以说自己写一下。如果您不需要移动相机,您可以假设大量计算为零,并且您可以执行以下操作以获得任何3d点的2d坐标:
rect2d.x = rect3d.x / rect3d.z;
rect2d.y = rect3d.y / rect3d.z;
这样做你可以简单地获取构成多边形的所有3d点,并使用2d点作为SVG基元。你将要处理的棘手部分是隐藏的表面去除,但这并不太难。阴影将成为您真正的问题,但也许您可以使用渐变来模拟光线。