四面体应该是说空间体状结构的最简单形式,只需要四个顶点就可以构成,某些情况下可能需要用四面体来做一些插值之类的操作,或是碰撞检测(比如判断一个点是否在四面体的内部),这些都可以用其重心坐标来成(Barycentric Coordinates)。四面体的重心坐标跟三角形的重心坐标类似,都是找到组成四面体的几个顶点与目标点之间的权重关系,进而来描述该目标点。一般情况下,三角形重心坐标的计算方法是使用对应的子三角形与原始三角形的面积比值来计算;同样,扩展到空间中的四面体的重心坐标就可以用对应的子四面体的体积比值来计算。不过这种方法稍显复杂,最近看到了一种更加简便的方法(但也跟体积比值法类似),使用点到平面的距离比值方法来计算。


首先定义点到平面的有向距离为:D(p , PLabc),其中p、a、b、c均为空间上的点,而PL是由a、b、c三个点所构成的平面,那么对于上图分布的一个四面体以及另外的任意一个点P,可得该点的重心坐标为:

其中的分别是P点相对于a,b,c,d点的权重,而且有+++= 1
有了重心坐标之后就可以使用其来判断P点与该四面体间的关系:

  • 如果均属于[0,1],那么P点位于该四面体的内部。
  • 如果其中某一项不在此范围内,还可以根据其越域方式来判断P点在四面体外的分布情况:比如小于0,那么P点就处于bcd所对应的平面之下(此处用a点来参考平面的上下);反之,若其大小1,那么P点就处于过P点且平行于bcd平面的平面之上。

这种计算方法还是很有用的,一方面用处较多,另一方面效率不大,点到平面的距离只需做dot就够了。

Barycentric Coordinates of Tetrahedron (计算四面体的重心坐标)相关推荐

  1. 计算机图形学三(补充):重心坐标(barycentric coordinates)详解及其作用

    重心坐标(Barycentric Coordinates) 1 重心坐标的定义及求解 1.1 基础定义 1.2 几何面积角度求解 1.3 坐标系角度求解 2 重心坐标的运用 Reference (本篇 ...

  2. 纹理映射、三角形的插值:重心坐标(Barycentric Coordinates)、纹理相关问题、纹理太小了、纹理太大了、Mipmap的流程、纹理的应用

    纹理映射 纹理就是一张图,将其贴在三维物体. 纹理映射(Texture Mapping),又称纹理贴图,是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程.简单来说,就是把一幅图像贴到三维物体的表面 ...

  3. Barycentric Coordinates 重心坐标

    Barycentric Coordinates 重心坐标 三角形上的任意一个点,都可以通过ABC的线性组合来表示. 其中α+β+γ=1α+β+γ=1α+β+γ=1 并且,只有当ααα,βββ,γγγ都 ...

  4. 图形学基础知识:重心坐标(Barycentric Coordinates)

    前言 在前面的文章中我们经常提到知道某个三角形三个顶点的属性,然后就可以求出三角形内部某一点对应的属性.例如深度缓存的时候,高洛德着色的时候等等,但是我们一直没有说具体应该如何计算,本文就来介绍一下这 ...

  5. OpenCV计算物体的重心坐标(2值图像)

    效果图: 代码: // FindGravity.cpp : 定义控制台应用程序的入口点. //#include "stdafx.h" #include <iostream&g ...

  6. 重心座标插值(Barycentric Interpolation)

    提要 重心座标插值在图形学领域有着很重要的应用,比如Ray Tracing算法的ray - triangle intersection 检测,比如有限元模拟中的模型简化等. 一维情况 从最简单的开始, ...

  7. GAMES101笔记_Lec07~09_着色 Shading

    0 我们已经学了什么 What We've Covered So Far 空间中定义了一个摄像机,通过某些变换使模型摆好姿势(Model) 通过观测变换让摄像机放在原点,得到标准的 [ − 1 , 1 ...

  8. python效率计算-提高python中重心坐标计算的效率

    背景:我试图将一张脸变成另一张不同形状的脸. 为了将一个图像扭曲成另一个图像,我使用面部地标的delaunay三角剖分并将一个肖像的三角形扭曲到第二个肖像的相应三角形.我正在使用重心坐标系将三角形内的 ...

  9. python效率计算公式_提高python中重心坐标计算的效率

    背景:我试图将一张脸变成另一张不同形状的脸. 为了将一个图像扭曲成另一个图像,我使用面部地标的delaunay三角剖分并将一个肖像的三角形扭曲到第二个肖像的相应三角形.我正在使用重心坐标系将三角形内的 ...

最新文章

  1. MongDB与Spring整合及操作
  2. css3滤镜Filter使用
  3. 装配图中齿轮的画法_春季高考机械专业中机械制图考什么?重点是什么?
  4. java怎么用柱形图_java绘制柱形图
  5. 关于IPC入侵的一些细节
  6. 无电池摄像头如何实现高清晰度视频编码?
  7. linux6/7 下载、安装、配置JDK
  8. python中方法调用方法_Python中实现结构相似的函数调用方法
  9. 小菜鸟装VM之后装linux
  10. SharePoint 创建 Lookup 类型的Site Column解决跨站问题
  11. Oracle推断值为非数字
  12. loadrunner—web_url
  13. 详解健康体检信息管理系统技术开发
  14. uniapp 评论列表,展开,收起,全部,局部刷新功能
  15. 华三计算机网络笔试题,软考网络工程师试题
  16. 又来神器推荐嘞xshell与winSCP
  17. 打印从1到最大的n位数------2022/08/05
  18. Nginx运行控制虚拟主机和访问控制
  19. 信息安全初学者容易犯的三个毛病
  20. 数据分析报告1:某电商店铺印度销售情况分析

热门文章

  1. HDU 1237 简单计算器(模拟)
  2. 外接gpu 训练神经网络,显卡训练神经网络
  3. matplotlib 图片复制到Word的几种方法
  4. 图像直方图均衡化c语言程序,数字图像处理——直方图均衡化
  5. 拼多多重大bug,一夜损失200亿,程序员面对老板是跑路还是留下?
  6. 《忏悔录》法—让雅克.卢梭
  7. 界面:“大众点评”即将消失,前路未定
  8. 从Tlink看企业接入物联网的紧迫性
  9. Spyder自动换行
  10. 脊髓损伤水肿一般几天消肿脊髓损伤如何消肿