网格梯度离散化 gradient

news2024/11/14 9:25:16

欢迎关注更多精彩
关注我,学习常用算法与数据结构,一题多解,降维打击。

参考自polygon mesh proccessing这本书

重心坐标定理

定理证明点击前往
在这里插入图片描述
已经三角形三点上的函数值分别为gi,gj,gk。
可以利用插值得到g处的函数值。

g = α g i + β g j + γ g k g=\alpha g_i+\beta g_j+ \gamma g_k g=αgi+βgj+γgk
α + β + γ = 1 , \alpha + \beta + \gamma = 1, α+β+γ=1,
α , β , γ > 0 \alpha,\beta,\gamma>0 α,β,γ>0

α = s i s i + s j + s k \alpha = \frac {s_i} {s_i+s_j+s_k} α=si+sj+sksi
β = s j s i + s j + s k \beta = \frac {s_j} {s_i+s_j+s_k} β=si+sj+sksj
γ = s k s i + s j + s k \gamma = \frac {s_k} {s_i+s_j+s_k} γ=si+sj+sksk

s i 是 g i 对面与 g 组成的小三角形, s j , s k 类似 s_i 是g_i对面与g组成的小三角形,s_j, s_k类似 sigi对面与g组成的小三角形,sj,sk类似

函数定义


利用上述原理,x处的函数值
f ( x ) = α f i + β f j + γ f k f(x) = \alpha f_i+\beta f_j + \gamma f_k f(x)=αfi+βfj+γfk

梯度定义

梯度是对函数进行求导, f i , f j , f k 是已知量,只要对 α , β , γ 求导即可。 梯度是对函数进行求导,f_i,f_j,f_k 是已知量,只要对\alpha, \beta, \gamma求导即可。 梯度是对函数进行求导,fi,fj,fk是已知量,只要对α,β,γ求导即可。

∇ x f ( x ) = f i ∇ x α + f j ∇ x β + f k ∇ x γ \nabla_xf(x)=f_i\nabla_x\alpha+f_j\nabla_x\beta+f_k\nabla_x\gamma xf(x)=fixα+fjxβ+fkxγ

梯度求解

利用三角形面积底高公式

以 α 为例,对于 A i 面积,底是 ∥ x k − x j ∥ 2 , 高是向量 ( x − x j ) 在 ( x k − x j ) 垂直方向上的投影 以\alpha为例,对于A_i面积,底是\|x_k-x_j\|_2, 高是向量(x-x_j)在(x_k-x_j)垂直方向上的投影 α为例,对于Ai面积,底是xkxj2,高是向量(xxj)(xkxj)垂直方向上的投影

α = A i A T = ( ( x − x j ) ⋅ ( x k − x j ) ⊥ ∥ x k − x j ∥ 2 ) ⋅ ∥ x k − x j ∥ 2 2 A T \alpha = \frac {A_i}{A_T}=\frac {\left( (x-x_j)\cdot \frac {(x_k-x_j)^\perp}{\|x_k-x_j\|_2}\right) \cdot\|x_k-x_j\|_2}{2A_T} α=ATAi=2AT((xxj)xkxj2(xkxj))xkxj2
= ( x − x j ) ⋅ ( x k − x j ) ⊥ 2 A T =\frac { (x-x_j)\cdot (x_k-x_j)^\perp }{2A_T} =2AT(xxj)(xkxj)

上式中变量只有x, 求导如下

∇ x α = ( x k − x j ) ⊥ 2 A T \nabla_x\alpha = \frac { (x_k-x_j)^\perp }{2A_T} xα=2AT(xkxj)
∇ x β = ( x i − x k ) ⊥ 2 A T \nabla_x\beta= \frac { (x_i-x_k)^\perp }{2A_T} xβ=2AT(xixk)
∇ x γ = ( x j − x i ) ⊥ 2 A T \nabla_x\gamma = \frac { (x_j-x_i)^\perp }{2A_T} xγ=2AT(xjxi)

致此,梯度已经得到

∇ x f ( x ) = f i ( x k − x j ) ⊥ 2 A T + f j ( x i − x k ) ⊥ 2 A T + f k ( x j − x i ) ⊥ 2 A T \nabla_xf(x)=f_i\frac { (x_k-x_j)^\perp }{2A_T}+f_j \frac { (x_i-x_k)^\perp }{2A_T}+f_k\frac { (x_j-x_i)^\perp }{2A_T} xf(x)=fi2AT(xkxj)+fj2AT(xixk)+fk2AT(xjxi)

公式化简

三角形三条边为向量走一遍最后回到起点,可以得到

( x k − x j ) + ( x i − x k ) + ( x j − x i ) = 0 (x_k-x_j)+(x_i-x_k)+(x_j-x_i)=0 (xkxj)+(xixk)+(xjxi)=0

把所有向量转90度再相加,结果不变。

( x k − x j ) ⊥ + ( x i − x k ) ⊥ + ( x j − x i ) ⊥ = 0 (x_k-x_j)^\perp+(x_i-x_k)^\perp+(x_j-x_i)^\perp=0 (xkxj)+(xixk)+(xjxi)=0

将梯度公式中xk-xj替换得到

∇ x f ( x ) = ( f j − f i ) ( x i − x k ) ⊥ 2 A T + ( f k − f i ) ( x j − x i ) ⊥ 2 A T \nabla_xf(x)=(f_j-f_i) \frac { (x_i-x_k)^\perp }{2A_T}+(f_k-f_i)\frac { (x_j-x_i)^\perp }{2A_T} xf(x)=(fjfi)2AT(xixk)+(fkfi)2AT(xjxi)


本人码农,希望通过自己的分享,让大家更容易学懂计算机知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/801763.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis优惠券秒杀超卖问题

Redis秒杀超卖问题 前言一、出现秒杀超卖的原因二、超卖解决方案使用乐观锁解决超卖问题程序中进行解决 前言 这是我认为b站上最好的redis教程,各方面讲解透彻,知识点覆盖比较全。 黑马redis视频链接:B站黑马redis教学视频 本文参考黑马redi…

多点测试激光焊缝透光率检测仪

聚丙烯(PP)是日常生活生产中常见的一种塑料,具有较高的耐冲击性,机械强度以及良好的抗腐蚀性,如能耐多种有机溶剂和酸碱腐蚀性液体,被广泛应用于家用电器的绝缘外壳、培养瓶、食品袋、饮料包装瓶等产品中。…

volley 学习笔记1--发送请求

一、概览 Volley 具有以下优势: 自动网络请求调度。 多个并发网络连接。 透明磁盘和具有标准 HTTP 缓存一致性的内存响应缓存。 支持请求优先级。 取消请求 API。您可以取消单个请求,也可以设置要取消的请求的时间段或范围。 可轻松自定义&#xff…

Docker学习笔记,包含docker安装、常用命令、dockerfile、docker-compose等等

😀😀😀创作不易,各位看官点赞收藏. 文章目录 Docker 学习笔记1、容器2、Docker 安装3、Docker 常用命令4、Docker 镜像5、自定义镜像5.1、镜像推送到阿里云5.2、镜像私有库 6、数据卷7、Docker 软件安装8、Docker File8.1、常见保…

如何为WordPress博客网站配置免费域名HTTPS证书

文章目录 如何为WordPress博客网站配置免费域名HTTPS证书前置条件:步骤1 申请免费的域名HTTPS证书步骤2 将HTTP证书配置到cpolar的配置文件中2.1 创建证书文件夹2.2 修改cpolar配置文件2.3 重启cpolar服务2.4 查看后台Wordpress隧道是否在线正常2.5 用浏览器打开站点…

php适合做erp吗?

首先我们来了解一下什么是ERP? ERP——Enterprise Resource Planning 企业资源计划系统,是指在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。 ERP系统集中信息技术与先进的管理思想于一身…

HCIP——OSPF优化、拓展配置及选路规则

OSPF优化以及拓展配置 一、OSPF的优化1、汇总域间路由汇总域外路由汇总 2、特殊区域末梢区域完全末梢区域 NSSA非完全末梢区域Totally NSSA(完全的非完全末梢区域) 二、OSPF的拓展配置1、手工认证2、加快收敛3、沉默接口缺省路由 4、路由过滤5、路由控制5.1 修改优先级5.2 修改…

「2024」预备研究生mem-带绝对值的方程高次方程替代降次法

一、带绝对值的方程 二、高次方程替代降次法

Mybatis学习笔记,包含mybatis基本使用、关系映射、动态SQL、分页插件等等

😀😀😀创作不易,各位看官点赞收藏. 文章目录 MyBatis 学习笔记1、Mybatis Demo 程序2、Mybatis 核心配置文件3、Mybatis Mapper 传参映射4、Mybatis 查询结果5、Mybatis 关系映射处理5.1、多对一关系映射处理5.2、一对多关系映射处…

前后端分离开发流程

1、介绍 在前后端分离开发中,前端负责用户界面和交互逻辑的实现,后端则处理业务逻辑和数据持久化。这种开发模式的优势在于前后端可以独立进行开发,提高了开发效率,并且使得前后端可以采用不同的技术栈来实现各自的功能。 2、开…

golang 中的 cronjob

引言 最近做了一个需求,是定时任务相关的。以前定时任务都是通过 linux crontab 去实现的,现在服务上云(k8s)了,尝试了 k8s 的 CronJob,由于公司提供的是界面化工具,使用、查看起来很不方便。于是有了本文&#xff0c…

【技术积累】Vue.js中的核心知识

Vue的生命周期 Vue中的生命周期是指组件从创建到销毁的整个过程中,会触发一系列的钩子函数 Vue2中的生命周期 Vue2中的生命周期钩子函数是在组件的不同阶段执行的特定函数。这些钩子函数允许开发者在组件的不同生命周期阶段执行自定义的逻辑。 Vue2中的生命周期钩…

【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境5

#尝试搭建K210的Micropython开发环境(Win10) #实验程序之三:更新频率演示 #尝试搭建K210的Micropython开发环境(Win10) #实验程序之三:更新频率演示from Maix import freqcpu_freq, kpu_freq freq.get() …

数学建模-蒙特卡洛模拟

%% 蒙特卡罗用于模拟三门问题 clear;clc %% (1)预备知识 % randi([a,b],m,n)函数可在指定区间[a,b]内随机取出大小为m*n的整数矩阵 randi([1,5],5,8) %在区间[1,5]内随机取出大小为5*8的整数矩阵 % 2 5 4 5 3 1 4 2 %…

市面上的ipad国产触控笔怎么样?精选的性价比电容笔

要知道,真正的苹果品牌的那款原装电容笔,光是一支电容笔就价格近千元。实际上,平替电容笔对没有太多预算的用户是个不错的选择。一支苹果品牌的电容笔,价格是平替品牌的四倍,但电容笔的书写效果,却丝毫不逊…

植物一区HR | 植物生理组+转录组:揭示豆科植物响应干旱胁迫机制

PlantArray 植物高通量生理学表型监测系统 是一套以植物生理学为基础的高精度,高通量,自动化表型监测系统,集合实验设置、数据分析、决策工具于一身,能够高通量实时动态监测并进行全天候生理及环境参数采集,是进行植物…

使用 element-resize-detector 插件实现左侧菜单展开收起时,Echarts图表自适应功能

问题: 在项目中开发 echarts 图表的时候遇到了一个问题,就是左侧菜单展开和收起的时候图表没办法自适应的改变宽度,导致图表不能完美展示。 方案: 使用 element-resize-detector 插件来实现菜单展开或收起时候的图表自适应更新…

2024届IC秋招兆易创新数字IC后端笔试面试题

数字IC后端实现PR阶段设计导入需要哪些文件? 设计导入需要的文件如下图所示。这个必须熟练掌握。只要做过后端训练营项目的,对这个肯定是比较熟悉的。大家还要知道每个input文件的作用是什么。 在吾爱IC后端训练营Cortexa7core项目中,你认为…

ECharts柱状图实现从y轴指定数渲染,而不是始终从y=0处渲染

咱们先看看对比图,下图是echarts统计图放入数据不做处理的结果(只看蓝色柱子即可),可以看到柱状图不管数据时正数还是负数,都是以y0为图形的起点 下图是我想要实现的效果,相当于是以y轴最小值为起点渲染柱…

如何将数字高程模型加载到地图中查看,并进行在线编辑和分享?

四维轻云是一款地理空间数据在线管理平台,具有地理空间数据的在线管理、查看及分享等功能。在四维轻云平台中,用户可以将数据加载至地图中查看,并使用渲染、视图、标绘等工具。 现在,小编就来告诉大家如何将数字高程模型加载到地…