我正在尝试旋转一个矩形,我的意思是在将数组传递给GL进行渲染之前,在顶点数组中旋转其坐标。
我有一个像这样定义的矩形:
vect0 = -1.0, 0.0, 0
vect1 = -1.0, 1.0, 0
vect2 = 1.0, 1.0, 0
vect3 = 1.0, 0, 0
GLfloat verts[] = {vect0,vect1,vect2,vect3};
有没有办法以这样的方式旋转这些坐标:当渲染矩形时,它会在x,y或z轴上以任意角度旋转?
谢谢, 保罗
答案 0 :(得分:0)
您需要使用旋转矩阵。根据您编写的OpenGL ES版本,这可能就像glRotatef
(1.0 / 1.1)一样简单,或者您需要使用数学库来创建矩阵并将其发送到着色器。 (2.0)
如果您必须在发送顶点之前创建旋转,请使用数学库并将每个顶点乘以旋转矩阵。我不推荐它,除非你绝对100%确定顶点在初始旋转后永远不会旋转。