我正在尝试使用threejs进行飞机/线条/圆圈的立体摄影项目 与此网站非常相似:http://app.visiblegeology.com/stereonetApp.html
虽然作者使用了三个.js,但是他们不顾一切地混淆了javascript并且无法看到投影是如何制作的。
有关如何使用three.js呈现此内容的任何建议?我会渲染到纹理然后换到球体的底部吗?我是否应该尝试与渲染引擎接口并实际转换3d点?
谢谢!
答案 0 :(得分:0)
我用于将3D矢量投影到2D平面的函数如下: 假设向量在单位球上。
function project(vector){
vector = vector.clone();
if(vector.z>0){vector.negate();}
if(this.netType === 0){//Wulff Net
vector.set(vector.x/(1-vector.z), vector.y/(1-vector.z), 0);
}else if(this.netType === 1){//Equal Area Net
vector.set(vector.x*Math.sqrt(1/(1-vector.z)), vector.y*Math.sqrt(1/(1-vector.z)), 0);
}
return vector;
}
至于渲染,这取决于你是否想要在3D中看到立体声。如果您只对2D视图感兴趣,我建议不要使用Three.js,而是渲染到画布或SVG / VML。
(Visible Geology是用GWT编写的,所以Java,因此缩小了代码和疯狂。我已经用JavaScript重写了Stereonet)