【问题标题】:Graphics - Determining the Radius of TRIANGLE_FAN Circle and Local Coordinates from World Coordinates图形 - 从世界坐标确定 TRIANGLE_FAN 圆的半径和局部坐标
【发布时间】:2011-12-02 23:48:54
【问题描述】:

目前,我在 openGL 中有一个具有多个坐标系的太阳系。即,对于围绕它运行的行星,太阳有自己的轨道坐标系,对于代表太阳的圆,它有自己的坐标系。每个行星都有自己的轨道 CS 和 CS 的形状。

我使用 GL_TRIANGLE_FAN 为行星制作球体。

然后,当我收到鼠标坐标时,我使用 glUnProject 将它们从窗口坐标转换为世界坐标。然后,我尝试将这些世界坐标转换为本地坐标,以确定鼠标点击是否在行星形状内。如果是这样,它会输出行星的名称 - 困难的部分是让行星点击识别工作。

我似乎无法弄清楚如何正确执行此操作。我使用的公式 true if ((pow(target_LCS[0],2) + pow(target_LCS[1],2))

【问题讨论】:

    标签: c++ opengl graphics linear-algebra


    【解决方案1】:

    OpenGL 对对象一无所知。当您使用GL_TRIANGLE_FAN 创建球体时,您必须有代码告诉opengl 在哪里绘制球体以及半径是多少。如果您想进行相交测试,您将需要跟踪行星半径和行星位置您自己。所以只需使用绘图代码中指定的位置和半径即可。

    【讨论】:

      猜你喜欢
      • 2018-07-03
      • 2015-08-10
      • 2014-12-22
      • 1970-01-01
      • 1970-01-01
      • 2018-01-29
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多