如何在WebGL中通过输入搜索来找到点?

发布于 2024-10-26 17:14:24 字数 64 浏览 5 评论 0原文

我将使用搜索输入创建 3D 地球。有人可以指导如何使用 WebGL 编写通过输入搜索找到点(精确位置点)的代码吗?

I'm going to create 3D Earth with search input. Could someone guide how to write code that finds point (exact place point) by input search, using WebGL?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

三人与歌 2024-11-02 17:14:24

我认为你的问题非常模糊,但我可以想象你想要做的是旋转 3D 地球,以便你查询的点出现在视图的中心(或者它是相同的,在视图的视图轴上)相机)。

为此,您需要:

  1. 为每个地标分配一组
    为每个地标

  2. 假设您正在定位
    球体表面上的点
    你可以忘记半径
    仅分配海拔
    每个点的方位角

  3. 然后你编写代码
    用户输入兴趣点。
    说“罗马”。

  4. 你在a中寻找这一点
    javascript 数组并恢复
    仰角方位角

  5. 您应用相应的

    旋转到模型视图矩阵。假设您使用 glMatrix
    应该有这样的东西:

    var M = mat4.create();
    var Y_axis = [0,1,0];
    var X_axis = [1,0,0];
    mat4.rotate(M,方位角,Y轴);
    mat4.rotate(M,高程,X_轴);
    
  6. 兴趣点应该是
    现在显示

I think your question is really vague but I can imagine that what you want to do is to rotate your 3D Earth so the point you queried for appears in the center of the view (or what it is the same, on the view axis of the camera).

To do it you need to:

  1. assign every landmark a set of
    spherical coordinates

  2. given that you are locating
    points on the surface of the sphere
    you can forget about the radius and
    only assign elevation and
    azimuth to each point.

  3. then you write the code for the
    user to input the point of interest.
    Say "Rome".

  4. you look for this point in a
    javascript array and recover the
    elevation and the azimuth values

  5. you apply the correspondent
    rotations to your Model-View Matrix. Assuming you are using glMatrix you
    should have something like this:

    var M = mat4.create();
    var Y_axis = [0,1,0];
    var X_axis = [1,0,0];
    mat4.rotate(M,azimuth,Y_axis);
    mat4.rotate(M,elevation,X_axis);
    
  6. the point of interest should be
    displayed now

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文