0

我正在制作一个3D地球仪,展示一些来自世界各地的可爱水果。工作很好,但我有两个主要问题无法解决。

  • 第一个是关于我的针的旋转。我希望它们在相机前面,但仍然有点指向地球的中心,我在addPin函数中的lookAt。我不知道应该调整哪个参数才能得到理想的结果。

  • 第二个问题是OrbitControls和相机之间存在冲突。当我使用上一个/下一个/随机按钮时,它们会正确地切换为一个管脚,将其置于相机前面。但是,当我开始使用OrbitControls玩地球仪,然后使用这些控件时,它们的计算都变得一团糟。orbitControls正在移动相机,在我的函数rotateGlobe中,我正在旋转我的globeGroup,这导致了一场奇怪的冲突。

如果有一个疯狂的webGL向导出现,我会很乐意为这些问题提供一些帮助。提前多谢!

以下是回购的链接:https://github.com/Rakido/final-inte网站稍后在Shopify上没有集成它的包,您可以用一个简单的http-server命令行启动它。

谢谢❤️

编辑:

我有点管理第二期的预期效果。这是我在rotateGlobe函数中添加的代码。但有时当摄像机在全球范围内移动时会出现故障。如何妥善处理位置无故障?

const-fruitIndex=水果indexOf(水果)+1;const selectedPin=globeGroup.childrens[ruitIndex];const pinPosition=新的三个。矢量3();selectedPin.getWorldPosition(pinPosition);//病人la位置mondiale du pinconstr_cam=相机位置长度();//拉卡梅拉球场的功臣const phi=数学.acos(pinPosition.y/pinPosition.length());const theta=数学.atan2(pinPosition.z,pinPosition.xml);const x_cam=r_cam*数学.sin(φ)*数学.cos(θ);const y_cam=r_cam*数学cos(φ);const z_cam=r_cam*数学.sin(φ)*数学.sn(θ);camera.lookAt(pinPosition);gsap至(摄像机位置{x: x上午,y: y_cam,z: z_凸轮,持续时间:1,ease:“power4.inOut”});

0

重置为默认值

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.