我试图计算一个由点数组(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等价相关推荐

  1. Python中曲率与弯曲的转换_1000R曲率更具沉浸感!三星T55曲面显示器评测

    在曲面屏的设计上,三星一直在突破极限,比如在2017年推出的49英寸超宽带鱼屏C49HG90,引来众人围观,非常震撼.而在曲率方面,我们常见的有1800R和1500R,但是三星并不满足,于日前推出了一 ...

  2. Python中曲率与弯曲的转换_黎曼几何学习笔记(3)——共形数量曲率与高斯曲率...

    参考文献: (GTM171)Peter<Riemannian Geometry>,Richard Mikula<Notes on the Yamabe Flow>,夏青< ...

  3. Python基础_第5章_Python中的数据序列

    Python基础_第5章_Python中的数据序列 文章目录 Python基础_第5章_Python中的数据序列 Python中的数据序列 一.字典--Python中的==查询==神器 1.为什么需要 ...

  4. Python基础_第3章_Python中的循环结构

    Python基础_第3章_Python中的循环结构 文章目录 Python基础_第3章_Python中的循环结构 Python中的循环结构 一.回顾分支练习题 1.判断是否为一个合法三角形 2.求世界 ...

  5. python中单位转换_Python中的单位转换

    我赞成在科学计算应用中使用显式单位.使用显式单位类似于刷牙.它在前面增加了一些乏味,但是从长远来看,你得到的类型安全性可以节省很多麻烦.比如说,not crashing $125 million or ...

  6. rgb hsl转换_python中的rgb hsl转换

    rgb hsl转换 The most common ways of encoding colour values are RGB (red, green and blue) and HSL (hue, ...

  7. python的api是什么意思_python中api的使用方法是什么

    python中api的使用方法是什么 发布时间:2020-07-31 13:48:21 来源:亿速云 阅读:77 作者:清晨 小编给大家分享一下python中api的使用方法是什么,希望大家阅读完这篇 ...

  8. python 获取用户的一个输入值_Python中,用于获取用户输入的命令为:

    [多选题]以下关于机器学习说法正确的是? [判断题]Python内置函数sum____用来返回数值型序列中所有元素之和. [单选题]关于自定义函数的下列说法不正确的是: [判断题]Python内置函数 ...

  9. python怎么画三维函数图像_python中如何画三维的图形?

    之前教了大家不少简单的画图方法,有的小伙伴已经想尝试更漂亮的高难度图形.小编找到了一个简单容易上手的分享给大家. 如果需要绘制三维的图形,matlab可以,python同样可以,代码风格也是极其的与m ...

最新文章

  1. java小程序死机_求解,刚写的小程序,一运行我机器就死机
  2. ABAP源码--当前及可用库存查询
  3. php tp 重加载页面,thinkPHP线上自动加载异常与修复方法实例分析
  4. 虚拟机扩容后mysql无法使用_VMWARE 扩容踩坑记
  5. python列表元组字符串都属于有序数列_列表、元组、字符串是Python的__________(有序、无序?)序列。...
  6. pip sintall pyspider 报错:ERROR: Command errored out with exit status 10
  7. git pull时冲突的几种解决方式
  8. python画柱形图把奇数年份也显示出来_python - Matplotlib奇数子图 - 堆栈内存溢出...
  9. 绝大部分人都错误的把赚钱或者人生都放在依靠外界
  10. 修改软件的ico图片方法
  11. StanfordDB class自学笔记 (4) XML Data
  12. C语言笔记 · ASCII码表
  13. excel2007加载宏的两种方法
  14. Android Studio一键汉化,分享一个自己写的小工具
  15. vue设置必填项和判断必填项是否填入的弹窗提示
  16. 创建parquet类型的hive外表
  17. vue 实现导出excel或文件两种方法
  18. resulful规范_ResultFul API
  19. python开发工具geany_geany作为Python的编辑器好用吗?
  20. android beam小米,小米手机自定义空白卡模拟加密卡门禁卡教程

热门文章

  1. pytorch移动端,官方helloworld不同模型仍旧好用
  2. AutoML自定义搜索网络类(如何在一个大的网络中搜索一个网络)
  3. Joomla 2.5 中文语言包安装模板报错
  4. 企业级java b2bc商城系统开源源码二次开发(二十一)springboot集成JMS
  5. vue 加载体验优化
  6. 构建私有云时,需要考虑的十大要点
  7. Java 性能优化的五大技巧
  8. 超强PHP集成环境,支持800多个不同PHP版本同时运行,无限自定义添加mysql与php版本...
  9. android SwipeRefreshLayout 增加上拉加载更多
  10. LINUX符号、快捷键、正则