我需要一种方法来找到一组描述球的位置和方向的齐次变换矩阵。
这个想法是,我在这个球体的中心有一个物体,它的半径是dz。因为我知道物体的三维坐标,所以我知道球体的所有三维坐标。能不能确定球面上任何一点的RPY,这样点总是指向中心的对象吗?
说明:

在这个球体的猎户座,我们有一个物体。球体的半径是dz。红点是球体上的一个点,从这个点到物体/猎户座的矢量。
位置应该是相对容易提取的,因为一个球可以用一个函数来描述,但是我如何确定向量,或者旋转矩阵,它指向origo。
发布于 2016-04-22 17:41:01
你可以用球的中心作为原点,计算由原点到球体边缘的直线的单位向量,然后把这个单位向量乘以-1,得到指向球面边缘点的指向球体中心的矢量。
示例:
vec pointToCenter(Point edge, Point origin) {
vec norm = edge - origin;
vec unitVec = norm / vecLength(norm);
return unitVec * -1;
}一旦有了向量,就可以将其转换为RPY的欧拉角,例如here
发布于 2016-04-22 17:55:37
在我的头顶上,我建议用四元数来定义原点的旋转,相对于你想要的球体表面上的点:
我没有时间为此编写代码,但不久前我在github存储库中编写了一个包含可编译代码示例的小教程,这将使您开始学习:
https://github.com/brownwa/opengl
先做mat_rotation教程,然后再做四元数教程。这是可以在一个周末,一天,如果你是专注的。
https://stackoverflow.com/questions/36798592
复制相似问题