c/c++语言开发共享2个2D向量的交叉积

任何人都可以提供返回TWO 2d向量的叉积的函数示例吗? 我正在尝试实现此算法 。

C代码会很棒。 谢谢。


编辑:发现另一种方式,它适用于2D,并且很容易。

bool tri2d::inTriangle(vec2d pt) { float AB = (pt.y-p1.y)*(p2.x-p1.x) - (pt.x-p1.x)*(p2.y-p1.y); float CA = (pt.y-p3.y)*(p1.x-p3.x) - (pt.x-p3.x)*(p1.y-p3.y); float BC = (pt.y-p2.y)*(p3.x-p2.x) - (pt.x-p2.x)*(p3.y-p2.y); if (AB*BC>0.f && BC*CA>0.f) return true; return false; } 

    (注意:2个向量叉积仅在3D和7D空间中定义。)

    代码计算位于xy平面上的2个向量的z分量:

     vec2D a, b; ... double z = ax * by - bx * ay; return z; 

    Mathworld Cross产品

      以上就是c/c++开发分享2个2D向量的交叉积相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/560592.html

      (0)
      上一篇 2021年1月28日
      下一篇 2021年1月28日

      精彩推荐