Python中曲率与弯曲的转换_Python中曲面曲率的Matlab等价
我试图计算一个由点数组(x,y,z)给出的曲面的曲率。最初我试图拟合一个多项式方程z=a+bx+cx^2+dy+exy+fy^2)
然后计算高斯曲率$ K = \frac{F_{xx}\cdot F_{yy}-{F_{xy}}^2}{(1+{F_x}^2+{F_y}^2)^2} $
但是,如果曲面是复杂的,则问题是拟合的。我找到了这个Matlab程序来数值计算曲率。我想知道如何在Python中做同样的事情。function [K,H,Pmax,Pmin] = surfature(X,Y,Z),
% SURFATURE - COMPUTE GAUSSIAN AND MEAN CURVATURES OF A SURFACE
% [K,H] = SURFATURE(X,Y,Z), WHERE X,Y,Z ARE 2D ARRAYS OF POINTS ON THE
% SURFACE. K AND H ARE THE GAUSSIAN AND MEAN CURVATURES, RESPECTIVELY.
% SURFATURE RETURNS 2 ADDITIONAL ARGUEMENTS,
% [K,H,Pmax,Pmin] = SURFATURE(...), WHERE Pmax AND Pmin ARE THE MINIMUM
% AND MAXIMUM CURVATURES AT EACH POINT, RESPECTIVELY.
% First Derivatives
[Xu,Xv] = gradient(X);
[Yu,Yv] = gradient(Y);
[Zu,Zv] = gradient(Z);
% Second Derivatives
[Xuu,Xuv] = gradient(Xu);
[Yuu,Yuv] = gradient(Yu);
[Zuu,Zuv] = gradient(Zu);
[Xuv,Xvv] = gradient(Xv);
[Yuv,Yvv] = gradient(Yv);
[Zuv,Zvv] = gradient(Zv);
% Reshape 2D Arrays into Vectors
Xu = Xu(:); Yu = Yu(:); Zu = Zu(:);
Xv = Xv(:); Yv = Yv(:); Zv = Zv(:);
Xuu = Xuu(:); Yuu = Yuu(:); Zuu = Zuu(:);
Xuv = Xuv(:); Yuv = Yuv(:); Zuv = Zuv(:);
Xvv = Xvv(:); Yvv = Yvv(:); Zvv = Zvv(:);
Xu = [Xu Yu Zu];
Xv = [Xv Yv Zv];
Xuu = [Xuu Yuu Zuu];
Xuv = [Xuv Yuv Zuv];
Xvv = [Xvv Yvv Zvv];
% First fundamental Coeffecients of the surface (E,F,G)
E = dot(Xu,Xu,2);
F = dot(Xu,Xv,2);
G = dot(Xv,Xv,2);
m = cross(Xu,Xv,2);
p = sqrt(dot(m,m,2));
n = m./[p p p];
% Second fundamental Coeffecients of the surface (L,M,N)
L = dot(Xuu,n,2);
M = dot(Xuv,n,2);
N = dot(Xvv,n,2);
[s,t] = size(Z);
% Gaussian Curvature
K = (L.*N - M.^2)./(E.*G - F.^2);
K = reshape(K,s,t);
% Mean Curvature
H = (E.*N + G.*L - 2.*F.*M)./(2*(E.*G - F.^2));
H = reshape(H,s,t);
% Principal Curvatures
Pmax = H + sqrt(H.^2 - K);
Pmin = H - sqrt(H.^2 - K);
Python中曲率与弯曲的转换_Python中曲面曲率的Matlab等价相关推荐
- Python中曲率与弯曲的转换_1000R曲率更具沉浸感!三星T55曲面显示器评测
在曲面屏的设计上,三星一直在突破极限,比如在2017年推出的49英寸超宽带鱼屏C49HG90,引来众人围观,非常震撼.而在曲率方面,我们常见的有1800R和1500R,但是三星并不满足,于日前推出了一 ...
- Python中曲率与弯曲的转换_黎曼几何学习笔记(3)——共形数量曲率与高斯曲率...
参考文献: (GTM171)Peter<Riemannian Geometry>,Richard Mikula<Notes on the Yamabe Flow>,夏青< ...
- Python基础_第5章_Python中的数据序列
Python基础_第5章_Python中的数据序列 文章目录 Python基础_第5章_Python中的数据序列 Python中的数据序列 一.字典--Python中的==查询==神器 1.为什么需要 ...
- Python基础_第3章_Python中的循环结构
Python基础_第3章_Python中的循环结构 文章目录 Python基础_第3章_Python中的循环结构 Python中的循环结构 一.回顾分支练习题 1.判断是否为一个合法三角形 2.求世界 ...
- python中单位转换_Python中的单位转换
我赞成在科学计算应用中使用显式单位.使用显式单位类似于刷牙.它在前面增加了一些乏味,但是从长远来看,你得到的类型安全性可以节省很多麻烦.比如说,not crashing $125 million or ...
- rgb hsl转换_python中的rgb hsl转换
rgb hsl转换 The most common ways of encoding colour values are RGB (red, green and blue) and HSL (hue, ...
- python的api是什么意思_python中api的使用方法是什么
python中api的使用方法是什么 发布时间:2020-07-31 13:48:21 来源:亿速云 阅读:77 作者:清晨 小编给大家分享一下python中api的使用方法是什么,希望大家阅读完这篇 ...
- python 获取用户的一个输入值_Python中,用于获取用户输入的命令为:
[多选题]以下关于机器学习说法正确的是? [判断题]Python内置函数sum____用来返回数值型序列中所有元素之和. [单选题]关于自定义函数的下列说法不正确的是: [判断题]Python内置函数 ...
- python怎么画三维函数图像_python中如何画三维的图形?
之前教了大家不少简单的画图方法,有的小伙伴已经想尝试更漂亮的高难度图形.小编找到了一个简单容易上手的分享给大家. 如果需要绘制三维的图形,matlab可以,python同样可以,代码风格也是极其的与m ...
最新文章
- java小程序死机_求解,刚写的小程序,一运行我机器就死机
- ABAP源码--当前及可用库存查询
- php tp 重加载页面,thinkPHP线上自动加载异常与修复方法实例分析
- 虚拟机扩容后mysql无法使用_VMWARE 扩容踩坑记
- python列表元组字符串都属于有序数列_列表、元组、字符串是Python的__________(有序、无序?)序列。...
- pip sintall pyspider 报错:ERROR: Command errored out with exit status 10
- git pull时冲突的几种解决方式
- python画柱形图把奇数年份也显示出来_python - Matplotlib奇数子图 - 堆栈内存溢出...
- 绝大部分人都错误的把赚钱或者人生都放在依靠外界
- 修改软件的ico图片方法
- StanfordDB class自学笔记 (4) XML Data
- C语言笔记 · ASCII码表
- excel2007加载宏的两种方法
- Android Studio一键汉化,分享一个自己写的小工具
- vue设置必填项和判断必填项是否填入的弹窗提示
- 创建parquet类型的hive外表
- vue 实现导出excel或文件两种方法
- resulful规范_ResultFul API
- python开发工具geany_geany作为Python的编辑器好用吗?
- android beam小米,小米手机自定义空白卡模拟加密卡门禁卡教程
热门文章
- pytorch移动端,官方helloworld不同模型仍旧好用
- AutoML自定义搜索网络类(如何在一个大的网络中搜索一个网络)
- Joomla 2.5 中文语言包安装模板报错
- 企业级java b2bc商城系统开源源码二次开发(二十一)springboot集成JMS
- vue 加载体验优化
- 构建私有云时,需要考虑的十大要点
- Java 性能优化的五大技巧
- 超强PHP集成环境,支持800多个不同PHP版本同时运行,无限自定义添加mysql与php版本...
- android SwipeRefreshLayout 增加上拉加载更多
- LINUX符号、快捷键、正则