提要

重心座标插值在图形学领域有着很重要的应用,比如Ray Tracing算法的ray - triangle intersection 检测,比如有限元模拟中的模型简化等。

一维情况

从最简单的开始,一个线段:

如何表示p点的值?

可以这样想,p总是在x1和x2之间徘徊,不知道如何选择,蓝色线段的长度t表示p对x2的喜爱程度,红色线段(1-t)表示对x1的喜爱程度。

那么P点的值就可以表示为

 .

二维情况

二维情况下就是三角形了。

求点p的值。

二维情况下就应该联想到面积。想法类似,如下图:

蓝色三角形面积A3表示p喜爱蓝色点的程度,绿色三角形和红色三角形同理。

那么p点的座标就可以表示为:

令 u = A1/A ,v = A2/A, w = A3/A

则式子可以化为

ux1 + vx2 + wx3.

其中 u+v+w=1.

求三角形面积

已知三角形三个顶点的座标值,求三角形面积。如下图

首先求平行四边形的面试,用到的是向量的点乘。

Parallelogramarea= ||(B−A)×(C−A)||Trianglearea=Parallelogramarea2Parallelogramarea= ||(B−A)×(C−A)||Trianglearea=Parallelogramarea2Parallelogramarea= ||(B−A)×(C−A)||Trianglearea=Parallelogramarea2Parallelogramarea= ||(B−A)×(C−A)||Trianglearea=Parallelogramarea2Parallelogramarea= ||(B−A)×(C−A)||

三角形面积除以2就可以了。

Trianglearea=||(B−A)||∗||(C−A)||sin(θ)2

三维情况

三维1情况对应的就是四面体( Tetrahedron)了。如下图,还是求P点的值。

也许大家第一想到的是体积是这样的,计算每个小四面体的体积,然后和最大的四面体体积相比,得到对应的比例,原理是这样的,但是有更加简单的方法!

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

其中的分别是P点相对于a,b,c,d点的权重,而且有+++= 1

p = a *  + b * +c * +d * =a +(b-a)*  + (c-a)*  + (d-a)* 

有了重心坐标之后就可以使用其来判断P点与该四面体间的关系:

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

参考

Barycentric Coordinates - http://www.scratchapixel.com/lessons/3d-basic-lessons/lesson-9-ray-triangle-intersection/barycentric-coordinates/

Barycentric Coordinates of Tetrahedron  - http://blog.csdn.net/bugrunner/article/details/7423727

重心座标插值(Barycentric Interpolation)相关推荐

  1. 着色Shading(2)(着色的继续、管线和纹理映射)(笔记)

    文章目录 前言 四.高光项(Specular Term) 高光是什么 Blinn-Phong高光项 五.环境光照项(Ambient Term) 环境光照是什么 六.Blinn-Phong反射模型的总结 ...

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

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

  3. [欠驱动机器人]4,动态规划(Dynamic Programming)

    目录 前言 控制问题变成优化问题 新增成本(Additive cost) 图搜索的最优控制 连续动力学方程 HJB 方程 求出最小控制 数值求解J 方程逼近与数值迭代 线性方程逼近 网格上的值迭代 连 ...

  4. CVPR 2018 | 腾讯AI Lab关注的三大方向与55篇论文

    感谢阅读腾讯 AI Lab 微信号第 32 篇文章,CVPR 2018上涌现出非常多的优秀论文,腾讯 AI Lab 对其中精华文章归类与摘要,根据受关注程度,对生成对抗网络.视频分析与理解和三维视觉三 ...

  5. 三次样条插值 cubic spline interpolation

    什么是三次样条插值 插值(interpolation)是在已知部分数据节点(knots)的情况下,求解经过这些已知点的曲线, 然后根据得到的曲线进行未知位置点函数值预测的方法(未知点在上述已知点自变量 ...

  6. 1月16日:拉格朗日中值定理,罗尔定理,柯西中值,拉格朗日插值,牛顿插值,重心插值,拉格朗日乘子法的证明

    拉格朗日中值定理 https://www.bilibili.com/video/BV117411E7kx?from=search&seid=17921778669593975548 拉格朗日中 ...

  7. 模板:拉格朗日插值(多项式)

    所谓拉格朗日插值,就是在"拉格朗日"进行的一项民俗活动.拉格朗日通常在每年2月的第82个星期三. (逃) 前言 非常强大的算法. 当可以证明某个函数是一个 kkk 次多项式时,我们 ...

  8. 线性插值算法实现图像_C程序实现插值搜索算法

    线性插值算法实现图像 Problem: 问题: We are given an array arr[] with n elements and an element x to be searched ...

  9. 常用插值核介绍-nearest,linear,cubic,lanzcos

    目录 简介 nearest插值核 linear插值核 cubic插值核 lanczos插值核 图像插值几何中心对齐 图像插值 展望 参考资料 简介 主要介绍常用的插值核(interpolation k ...

最新文章

  1. 06-Windows Server 2012 R2 会话远程桌面-标准部署-RD网关(RemoteApp)
  2. 这些片段在Android编程中很有用 (ZT)
  3. Rust从入门到放弃(1)—— hello,world
  4. thinkphp 助手函数url不生成https_如何用ThinkPHP框架写一个快递查询接口
  5. python关键词提取源码,python实现textrank关键词提取
  6. 【PPT分享】特斯拉远景规划及中国供应链的机遇.pdf(附119页ppt下载链接)
  7. C语言基础:用快速排序实现输出最大数
  8. Python数据分析之简书七日热门数据分析
  9. 《Windows程序设计》之剪贴板查看器
  10. Matlab中图形对象属性gcf使用
  11. oracle中间人投毒漏洞,ORACLE远程投毒漏洞修复(RAC环境)
  12. SONET、SDH、POS简介
  13. python循环嵌套打印小星星_python基础:嵌套循环及例子(打印小星星,九九乘法表)...
  14. 修改 vscode 中主题注释中文的斜体格式
  15. 企业品牌私域化运营,私域流量只是起步
  16. 侧边栏如何展开与收起
  17. 奈学教育《大数据架构师》课程大纲
  18. Conhash 和 Maglev hash对比
  19. 计算机联到同一个局域网,两台电脑连接同一个wifi算是局域网么
  20. 2017年科技界十大新闻,你都知道吗?

热门文章

  1. 二年级数学计算机教学教案,人教版二年级数学备课教案
  2. 项目中组件工厂的注册方法
  3. 《Python语言程序设计》王恺 机械工业出版社 第二章课后习题答案
  4. 文档对象模型DOM(获取元素节点、设置节点属性)
  5. 跨境电商卖家工具——跨境卫士内容介绍
  6. 论文阅读笔记2——Evading Defenses to Transferable Adversarial Examples by Translation-Invariant Attacks
  7. 跟女友旅游三天,还好Python治好了我的内耗
  8. 【一周头条盘点】中国软件网(2018.1.22~2018.1.26)
  9. 深度学习——残差网络ResNets
  10. 灵感 | 品,你细品,脑洞超大大大大