以三点外接圆方式计算:

以三个离散点的外接圆半径的倒数作为中间点的曲率计算公式为:
k=4Sabck = \frac{4S}{abc}k=abc4S​
其中S为三点构成三角形的面积。
a、b、c分别为三角形的三个边长。
如下图所示:

三点计算三角形面积的计算公式为:
S=∣x1y2+x2y3+x3y1−y1x2−y2x3−y3x12∣S=|\frac{x_1y_2+x_2y_3+x_3y_1-y_1x_2-y_2x_3-y_3x_1}{2}|S=∣2x1​y2​+x2​y3​+x3​y1​−y1​x2​−y2​x3​−y3​x1​​∣
三个点分别为:
(x1,y1),(x2,y2),(x3,y3)(x_1, y_1),(x_2, y_2), (x_3, y_3)(x1​,y1​),(x2​,y2​),(x3​,y3​)

公式推导

S=ac∗sinθ24SR=2ac∗RsinθS = \frac{ac*sin\theta}{2}\\ 4SR=2ac*Rsin\theta S=2ac∗sinθ​4SR=2ac∗Rsinθ
从图中可知
Rsinθ=b2Rsin\theta=\frac{b}{2}Rsinθ=2b​

4SR=abcR=abc4S4SR=abc\\ R = \frac{abc}{4S} 4SR=abcR=4Sabc​

感觉以上曲率的计算方法无法区分曲线有往左还是往右的趋势,因为计算出来的曲率总是个正值, 可以通过判断第三个点在第一和第二个组成的直线的左侧还是右侧来确定曲率的正负号, 下面介绍一种判断点在线段哪一侧的方法:

判断点在线段哪一侧:

假设要判断点P(x, y)位于A(x1, y1), B(x2, y2)点的哪一侧,可以通过二维平面两个向量的叉乘 的正负号表示两个向量之间的旋转方法来求得

叉乘相关介绍:

https://blog.csdn.net/weixin_39872717/article/details/77368234?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link

A作为起点,建立两个向量
AP(x-x1,y-y1)
AB (x2-x1, y2-y1)

建造两个向量PA 与PB 则 PA(x1-x,y1-y) PB(x2 -x,y2-y)
则二者叉乘 (x-x1)(y2-y1)-(y-y1)(x2-x1)=Z
Z=0:P点在直线ab上
Z>0:P点在直线右侧
Z<0:P点在直线左侧

引自:

Belyaev A G . A Note on Invariant Three-Point Curvature Approximations (Singularity theory and Differential equations)[J]. 数理解析研究所講究録, 1999, 1111:157-164.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        本文链接:https://blog.csdn.net/weixin_41530195/article/details/113859836

计算离散点曲率的方法相关推荐

  1. 离散度计算公式 python_计算离散点的曲率(附Python, MATLAB代码)

    在很多学科中的很多计算任务中都需要用到曲线的曲率(或者曲率半径),numpy库里和matlab build-in里都没有现成的能从离散点来算曲率的方法,网上找到的代码又不敢直接用,毕竟是要高频率用到自 ...

  2. (曲率系列3:)PCL:PCL库中的两种曲率表示方法pcl::NormalEstimation和PrincipalCurvaturesEstimation

    PCL里有两个计算曲率的调用函数: (1)pcl::NormalEstimation 这里边计算的曲率不是数学上定义的曲率. (2)pcl::PrincipalCurvaturesEstimation ...

  3. DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练、预测

    DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练.预测 导读 利用python的numpy计算库,进行自定义搭建2层神经网络TwoLayerN ...

  4. Java黑皮书课后题第7章:7.14(计算gcd)编写方法,返回个数不确定的整数的最大公约数。编写一个测试程序,提示用户输入5个数字,调用该方法找出这些数的最大公约数,并显示这个最大公约数

    7.14(计算gcd)编写方法,返回个数不确定的整数的最大公约数.编写一个测试程序,提示用户输入5个数字,调用该方法找出这些数的最大公约数,并显示这个最大公约数 题目 题目描述 破题 代码 运行实例 ...

  5. Java黑皮书课后题第6章:*6.14(估算π)π可以使用下面的数列进行计算。编写一个方法,对于给定的i返回m(i),并编写一个测试程序,显示如下表格

    6.14(估算π)π可以使用下面的数列进行计算.编写一个方法,对于给定的i返回m,并编写一个测试程序,显示如下表格 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 6.14(估算π)π ...

  6. Java黑皮书课后题第6章:6.11(金融应用:计算酬金)编写方法,利用编程练习题5.39中的方法计算酬金。方法头如下所示。编写程序,显示下面表格

    6.11(金融应用:计算酬金)编写方法,利用编程练习题5.39中的方法计算酬金.方法头如下所示.编写程序,显示下面表格 题目 题目描述与运行示例 编程练习题5.39(非本题) 破题 5.39处理 主方 ...

  7. lisp 河道水面线计算_天然河道水面线计算的几种方法解剖.pdf

    天然河道水面线计算的几种方法探讨 赵文丽 710003 710003 陕西天元水利电力勘察设计有限公司 陕西 西安 771100000033 摘要:介绍了明渠恒定均匀流法.天然河道水面线系统. HEC ...

  8. java 伴随矩阵_C#计算矩阵的逆矩阵方法实例分析

    本文实例讲述了C#计算矩阵的逆矩阵方法.分享给大家供大家参考.具体如下: 1.代码思路 1)对矩阵进行合法性检查:矩阵必须为方阵 2)计算矩阵行列式的值(Determinant函数) 3)只有满秩矩阵 ...

  9. 用计算机计算电力系统故障,用计算机计算电力系统故障的方法.ppt

    用计算机计算电力系统故障的方法 第六章 用计算机计算电力系统故障的方法 6-1 概述 手算 → 计算台(直流,交流) → 计算机(模拟机,数字机) 6-1 概述(续) 二.主要过程 6-2 等值网络及 ...

最新文章

  1. matlab matlabpool,Matlab matlabpool函数undefined
  2. Java数据结构--有序表
  3. peleenet v2不好
  4. 揭秘富人的22种习惯与风格
  5. 如果你不喜欢让大人说你祝酒祝福
  6. adb: createprocessw failed: 系统找不到指定的路径_gcc编译过程、gcc命令参数、静态库和动态库搜索路径...
  7. ansi编码_Java 字符编码
  8. 38 SD配置-销售凭证设置-定义拒绝原因
  9. 路由器的地址转换功能
  10. phprpc的简单使用
  11. Flink 流批一体在阿里的落地
  12. CASE WHEN 及 SELECT CASE WHEN的用法
  13. java万年历 for_java万年历
  14. 随身计算机的硬盘是该换了,手提电脑硬盘可以换吗
  15. 前后落差大用什么词语_形容两个人反差特别大的成语-有明显的反差 用什么词形容-形容前后态度反差巨大的词...
  16. “电动车之王”还不够,雅迪高端品牌怎么打?
  17. 苹果cms模板_苹果CMS提示“模板文件不存在”怎么办?
  18. 百度坐标转WGS84(即GPS)坐标
  19. Truncate Table用法
  20. HDU 5148 Cities

热门文章

  1. 适用于mac的Tor浏览器?
  2. 朗强科技hdmi延长器系列战略产品重拳出击
  3. 支付宝(沙箱版)提示: 系统有点忙,一会儿再试试,或者可以在电脑上付款。[ AE150003030]
  4. 用kivy将python打包成app_将kivy应用程序打包到android
  5. java基础_jdbc的步骤
  6. XPath语法 — 从XML文档树中摘果子
  7. CVE-2021-41773 Apache2.4.49路径穿越漏洞复现
  8. 5G/NR 网络切片之AMF选择(协议版)
  9. i710700k和i512600k差距大不大
  10. win10安装PyPy踩的坑(第三方库)