目前,我在openGL中有一个具有多个坐标系的太阳系。也就是说,太阳有自己的轨道坐标系,用于围绕轨道运行的行星以及代表太阳的圆的自身坐标系。每个行星都有自己的轨道CS和CS。图形 - 从世界坐标确定TRIANGLE_FAN圆和局部坐标的半径
我使用GL_TRIANGLE_FAN为行星制造球体。
然后,当我收到鼠标坐标时,我使用glUnProject将它们从窗口转换为世界坐标。然后,我尝试将这些世界坐标转换为本地坐标,以确定鼠标点击是否在行星形状内。如果是这样,它输出星球的名字 - 难的部分是让星球点击识别工作。
我似乎无法弄清楚如何正确地做到这一点。我使用的公式如果((pow(target_LCS [0],2)+ pow(target_LCS [1],2))< pow(radius,2))看起来没有正常工作,而不是确定点击是否在形状中,它从来就不是真的。我也不知道如何用TRIANGLE_FAN正确确定半径。