gpt4 book ai didi

opengl - 在 3d 地形上覆盖 2d 点

转载 作者:行者123 更新时间:2023-12-04 19:59:17 25 4
gpt4 key购买 nike

我正在使用 OpenTK(OpenGL),一般提示会有所帮助。

我有一个 3d 地形。我在这个地形上有一个点 O(x,y,z) 和两条穿过这个点的垂直线,它们将作为我的 X 和 Y 轴。

现在我有一组 2d 点,它们在极坐标(范围,θ)中。我需要找到地形上的哪些点与这些点相对应。我不确定最好的方法是什么。我能想到两个想法:

假设我正在绘制 A(x1,y1)。

  • 求通过 O 的平面与垂直于 XY 平面的 A 的交点。这会给我一条折线(语义可能会关闭)。现在在这条线上,我找到了一个点,从 O 可以看到并且在该范围的距离处。
  • 创建一个垂直于 XY 平面且半径为“range”的圆,在地形上找到交点,找到从 O 可见的交点,然后放下休息。

  • 我知道我可以找到几个满足条件的点,所以我会根据地形做进一步的检查,但现在我需要得到一个满足这个条件的较小的集合。

    我是 opengl 的新手,但我对几何学得很好。我想知道 opengl 中是否存在这样的东西,因为它是地面测量系统的标准问题。

    最佳答案

    正如您所说,您提供的两个选项都将给您带来的不仅仅是您需要的一分。据我了解您的问题,您只需要执行从极坐标 (r, angle) 到笛卡尔坐标 (x,y) 的基数更改。

    这是相当直接的。假设两个坐标空间共享原点 O 并且角度是从 x 轴测量的,那么点 (r_i, angle_i) 映射到 x_i = r_i*cos(angle_i)y_i = r_i*sin(angle_i) 。如果这些假设不正确(即如果原点不重合或角度不是从平行于 x 轴的 radii 测量的),那么转换会稍微复杂一些,但仍然可以完成。

    如果您的地形表示为高度图或 2D 高度数组(例如 Terrain[x][y] = z ),则一旦您在笛卡尔坐标 (x_i,y_i) 中找到该点,您就可以找到该点的高度。当然 (x_i, y_i) 可能不完全是高度图的 [x][y] 索引之一。

    在这种情况下,我认为您有几个选择:

  • 选择最近的 (x,y) 点并取那个高度;或
  • 根据高度图中的周围点在 (x_i,y_i) 处插入高度。

  • 不幸的是,我也在学习 OpenGL 并且无法在那里提供任何具体的见解,但我希望这有助于解决您的问题。

    关于opengl - 在 3d 地形上覆盖 2d 点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27672648/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com