图形-从世界坐标确定TRIANGLE_FAN圆的半径和局部坐标

Graphics - Determining the Radius of TRIANGLE_FAN Circle and Local Coordinates from World Coordinates

本文关键字:坐标 局部 FAN 世界坐标 TRIANGLE 图形      更新时间:2023-10-16

目前,我在openGL中有一个具有多个坐标系统的太阳系。也就是说,太阳有自己的轨道坐标系来表示围绕它运行的行星,也有自己的坐标系来表示代表太阳的圆。每个行星都有自己的轨道和形状。

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

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

我似乎不知道如何正确地做这件事。我使用的公式是true if ((pow(target_LCS[0],2) + pow(target_LCS[1],2))

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