【发布时间】:2017-10-05 22:51:29
【问题描述】:
这是我的问题。我必须在双三次曲面上沿圆形轨迹移动圆环。
然而,圆环的垂直轴必须与给定点的表面法线对齐,而且圆环必须面对它的圆形轨迹。
为了解决这个问题,我采用了法线向量和 Oy 向量,做了一个十字和一个点积来找到我需要的角度和旋转的轴,它可以工作。 为了管理第二部分,我获取了圆环的实际坐标,接下来是圆形轨迹上的坐标,制作了一个向量,并按照前面描述的方法找到了角度和轴,它起作用了。
我的问题是,我必须同时应用两个旋转,我找不到这样做的方法。我试图以各种可能的方式推送/弹出矩阵,但我找不到摆脱这种方式的方法。所以我回到这个......
glPushMatrix();
glTranslatef(pp -> x, pp ->y , pp ->z);
glRotatef(*angledegree, vecortho -> x, vecortho -> y, vecortho -> z);
glRotatef(*angledegreetang, tang -> x, tang -> y, tang -> z);
tore(0.1, 0.3, 6, 4, 1);
repere(0.6);
glPopMatrix();
有什么想法吗?很抱歉打扰你,我想它一定很简单,但我没有看到。无论顺序如何,第一个轮换总是会干扰下一个轮换。 vecortho 是根据表面法线和 Oy 计算的轴矢量。 tang 是用我的轨迹向量和 Ox 计算的向量。
【问题讨论】:
-
在圆环的坐标系中,哪个向量是“上”,哪个向量是“前”?
标签: c++ opengl rotation bicubic glrotate