0

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

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

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

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

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

谢谢_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

编辑:

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

const-fruitIndex=水果indexOf(水果)+1;const selectedPin=globeGroup.childrens[ruitIndex];const pinPosition=新的三个。矢量3();selectedPin.getWorldPosition(pinPosition);//病人la位置mondiale du pinconst r_cam=摄像机位置长度();//拉卡梅拉球场的功臣const phi=数学.acos(pinPosition.y/pinPosition.length());const theta=数学.atan2(pinPosition.z,pinPosition.xml);const x_cam=r_cam*数学sin(phi)*数学cos(theta);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

重置为默认值

你的答案

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