计算关节夹角

计算关节夹角

复制代码
float calculateAngle(float startX,float startY,float startZ,
    float centerX,float centerY,float centerZ,
    float endX,float endY,float endZ)
{
    float jointAngleValue = 0.0f;

    float vector1_x = startX - centerX;
    float vector1_y = startY - centerY;
    float vector1_z = startZ - centerZ;

    float vector2_x = endX - centerX;
    float vector2_y = endY - centerY;
    float vector2_z = endZ - centerZ;

    //cos  =  (vector1*vector2)/(mul(vector1)*mul(vector2))

    jointAngleValue = ((vector1_x*vector2_x + vector1_y*vector2_y + vector1_z*vector2_z) / (sqrt(vector1_x*vector1_x + vector1_y*vector1_y + vector1_z*vector1_z)*sqrt(vector2_x*vector2_x + vector2_y*vector2_y + vector2_z*vector2_z)));
    float jointAngleValue2 = acos(jointAngleValue);

    return jointAngleValue2;
}
复制代码

 

float jointAngle8_9_10_Value = calculateAngle(
        0.871856,0.151206,4.01117,
        1.17578,0.359172,3.95764,
        1.01659, 0.577535, 3.94001
        );

    std::cout << "jointAngle8_9_10_Value:" << jointAngle8_9_10_Value*180.0 / 3.1415926 << std::endl;

 

#################

posted @   西北逍遥  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2021-06-18 unity3d给某个对象添加材质
2020-06-18 IfcAnnotationFillArea
2020-06-18 IfcGeometricRepresentationItem
2019-06-18 Qt 自定义信号SIGNAL
2019-06-18 qt ui
点击右上角即可分享
微信分享提示