Jes*_*ica 4 c++ opengl transformation rotation
我在OpenGL和C++编程.我知道1行(对角线)上的2个点,并希望围绕该对角线旋转对象.我该怎么做呢?我知道如何使用glrotatef它围绕x,y或z轴旋转,但我不确定这一点.
x,y和z参数glRotate可以指定任意轴,而不仅仅是x,y和z轴.要找到穿过线的轴,只需减去线的终点以获得轴向量:如果两个点是(x1, y1, z1)和(x2, y2, z2),则需要的轴是(x2-x1, y2-y1, z2-z1).
编辑:正如@chris_l指出的那样,这只有当线穿过原点时才有效.如果不是,首先应用平移以(-x1, -y1, -z1)使线穿过原点,然后应用上面的旋转,并将其转换回来(x1, y1, z1).