判断一个点是否在一个四面体内

来源:互联网 发布:java enterprise 编辑:程序博客网 时间:2024/04/30 01:00

转自:http://tieba.baidu.com/p/787142172

用同一种绕序(顺时针或逆时针)把四面体的四个面顶点顺次写出 然后求出每个面的法向量(通过每个面同样顺序的两条边向量做叉积得到 为了让法向量全部朝里或朝外一定要用同一种绕序) 再求出法向量和 目标点到面上任意一点的向量 的点积 如果四个点积同号那就在里面
(如果你不能理解里面的名词就百科一下 如果完全不能理解的话建议你仔细学习下立体几何)

比如那个点是o 有一个四面体 四个顶点abcd 那么四个面分别是:abc acd adb cbd
然后求法向量:分别是ab×bc ac×cd ad*db cb×bd(里面*均表示叉积 最后要规范化 使模长为1)
然后求点积ab×bc·oa ac×cd·oa(剩下类推)
如果这四个点积同号 则在里面

0 0
原创粉丝点击