图形几何学——圆形:圆弧与曲率

这篇具有很好参考价值的文章主要介绍了图形几何学——圆形:圆弧与曲率。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于三个离散点求外接圆半径和曲率

方法1

A、B、C分别是参考线的某三个连续的离散点,abc分别是其对边。根据三角形外接圆相关性质,通过作三条边的中垂线的交点可以求得三角形的外接圆心。连接CO并延长交圆周于点D,由于
图形几何学——圆形:圆弧与曲率,几何学

方法2

图形几何学——圆形:圆弧与曲率,几何学

近似认为 ∣ P 1 ⃗ ∣ = ∣ P 2 P 3 ⃗ ∣ = d s |\vec{P_1}| = |\vec{P_2P_3}| = ds P1 =P2P3 =ds相等,求向量 P 2 P 1 ⃗ \vec{P_2P_1} P2P1 和向量 P 2 P 3 ⃗ \vec{P_2P_3} P2P3 的向量和,记向量和的端点为 A A A。易知四边形 D P 1 P 2 P 3 DP_1P_2P_3 DP1P2P3为菱形, Δ O P 1 P 2 \Delta OP_1P_2 ΔOP1P2 Δ O P 2 P 3 \Delta OP_2P_3 ΔOP2P3为等腰三角形,所以 Δ O P 1 P 2 \Delta OP_1P_2 ΔOP1P2 Δ P 1 P 2 D \Delta P_1P_2D ΔP1P2D相似,另外两个三角形同理,所以他们有以下关系
l d s = d s R \frac{l}{ds} = \frac{ds}{R} dsl=Rds
根据这个关系式可得
κ = 1 R = l d s 2 \kappa = \frac 1R = \frac{l}{ds^2} κ=R1=ds2l
其中 l = ∣ P 2 P 1 ⃗ + P 2 P 3 ⃗ ∣ l = |\vec{P_2P_1} + \vec{P_2P_3}| l=P2P1 +P2P3

根据密切圆概念求轨迹的曲率

参考相关文献1

  • 曲率圆(密切圆)的定义
    如果我们要计算某一处的曲率,就在它的左右各取一个点,并用这三点确定一个圆。然后将左右两个点不断向中间靠拢,最终得到的圆,就是曲率圆。曲率圆就是对这个点附近曲线的最佳圆逼近。
  • 曲率圆的特点
    • 曲线较为平坦的地方,曲率圆半径较大,较为弯曲的地方,曲率圆半径较小
  • 根据曲率圆求曲率的过程
    假设一段曲线上取三个点,假设中间的点为 x 0 x_0 x0,左右两个点分别为 x 0 − δ x_0 - \delta x0δ x 0 + δ x_0 + \delta x0+δ,由它们确定的圆的半径用 R R R表示。

图形几何学——圆形:圆弧与曲率,几何学

这个半径可以根据外接圆半径得到, S Δ A B C S_{\Delta ABC} SΔABC为这个三角形的面积,a,b,c为三个点构成三角形的三条边的边长,即三个向量的模,写作
R = a b c 4 S Δ A B C = ∣ ∣ a ∣ ∣ ⋅ ∣ ∣ b ∣ ∣ ⋅ ∣ ∣ c ∣ ∣ 4 S Δ A B C \begin{split} R &= \dfrac {abc}{4S_{\Delta ABC}} \\ &= \dfrac {||a||·||b||·||c||}{4S_{\Delta ABC}} \end{split} R=4SΔABCabc=4SΔABC∣∣a∣∣∣∣b∣∣∣∣c∣∣

图形几何学——圆形:圆弧与曲率,几何学

根据图形几何可知,向量a与向量b的点乘/行列式即为他们两所构成的平行四边形的面积,写作
S 平行四边形 = 2 S Δ A B C = a ⋅ b = det ⁡ ( a , b ) S_{平行四边形} = 2S_{\Delta ABC} = a · b = \det(a,b) S平行四边形=2SΔABC=ab=det(a,b)
即有
S Δ A B C = 1 2 ∣ det ⁡ ( a , b ) ∣ S_{\Delta ABC} = \frac 12 |\det(a,b) | SΔABC=21det(a,b)
将上式带回原式后可得
R = ∣ ∣ a ∣ ∣ ⋅ ∣ ∣ b ∣ ∣ ⋅ ∣ ∣ c ∣ ∣ 2 ∣ det ⁡ ( a , b ) ∣ \begin{split} R &= \dfrac {||a||·||b||·||c||}{2|\det(a,b) |} \end{split} R=2∣det(a,b)∣∣a∣∣∣∣b∣∣∣∣c∣∣
设曲线函数为 f f f,那么三个点的坐标为
( x 0 − δ , f ( x 0 − δ ) ) ( x 0 , f ( x 0 ) ) ( x 0 + δ , f ( x 0 + δ ) ) \Big(x_0 - \delta, f(x_0 - \delta)\Big)\\ \Big(x_0, f(x_0)\Big) \\ \Big(x_0 + \delta, f(x_0 + \delta)\Big) (x0δ,f(x0δ))(x0,f(x0))(x0+δ,f(x0+δ))
那么三个向量分别写作
a = ( δ , f ( x 0 + δ ) − f ( x 0 ) ) b = ( δ , f ( x 0 − f ( x 0 − δ ) ) ) c = ( − 2 δ , f ( x 0 + δ ) − f ( x 0 − δ ) ) a = \Big(\delta, f(x_0 + \delta) - f(x_0)\Big)\\ b = \Big(\delta, f(x_0 - f(x_0 - \delta))\Big)\\ c = \Big(-2\delta, f(x_0 + \delta) -f(x_0 - \delta) \Big) a=(δ,f(x0+δ)f(x0))b=(δ,f(x0f(x0δ)))c=(2δ,f(x0+δ)f(x0δ))
将上式代入,可得
R = [ f ( x 0 + δ ) − f ( x 0 − δ ) δ ] 2 + 4 [ f ( x 0 + δ ) − f ( x 0 ) δ ] 2 + 1 [ f ( x 0 + δ ) − f ( x 0 − δ ) δ ] 2 + 1 2 ∣ f ( x 0 + δ ) + f ( x 0 − δ ) − 2 f ( x 0 ) δ 2 ∣ R = \dfrac {\sqrt{\Big[\dfrac{f(x_0 + \delta) - f(x_0 - \delta)}{\delta}\Big]^2+ 4} \sqrt{\Big[\dfrac{f(x_0 + \delta) - f(x_0)}{\delta}\Big]^2+ 1} \sqrt{\Big[\dfrac{f(x_0 + \delta) - f(x_0 - \delta)}{\delta}\Big]^2+ 1} }{2\Big|\dfrac {f(x_0 + \delta) + f(x_0 - \delta) - 2f(x_0)}{\delta^2}\Big|} R=2 δ2f(x0+δ)+f(x0δ)2f(x0) [δf(x0+δ)f(x0δ)]2+4 [δf(x0+δ)f(x0)]2+1 [δf(x0+δ)f(x0δ)]2+1

让左右两边的点向中间靠,当 δ → 0 \delta \rightarrow 0 δ0时,即可得到曲率圆的半径,写作
lim ⁡ δ → 0 R = [ f ( x 0 + δ ) − f ( x 0 − δ ) δ ] 2 + 4 [ f ( x 0 + δ ) − f ( x 0 ) δ ] 2 + 1 [ f ( x 0 + δ ) − f ( x 0 − δ ) δ ] 2 + 1 2 ∣ f ( x 0 + δ ) + f ( x 0 − δ ) − 2 f ( x 0 ) δ 2 ∣ = [ f ( x 0 + δ ) − f ( x 0 − δ ) δ ] 2 + 4 [ f ( x 0 + δ ) − f ( x 0 ) δ ] 2 + 1 [ f ( x 0 + δ ) − f ( x 0 − δ ) δ ] 2 + 1 2 ∣ f ( x 0 + δ ) + f ( x 0 − δ ) − 2 f ( x 0 ) δ 2 ∣ \begin{split} \lim_{\delta \rightarrow0}R &= \dfrac {\sqrt{\Big[\dfrac{f(x_0 + \delta) - f(x_0 - \delta)}{\delta}\Big]^2+ 4} \sqrt{\Big[\dfrac{f(x_0 + \delta) - f(x_0)}{\delta}\Big]^2+ 1} \sqrt{\Big[\dfrac{f(x_0 + \delta) - f(x_0 - \delta)}{\delta}\Big]^2+ 1} }{2\Big|\dfrac {f(x_0 + \delta) + f(x_0 - \delta) - 2f(x_0)}{\delta^2}\Big|} \\ &= \dfrac {\sqrt{\Big[\dfrac{f(x_0 + \delta) - f(x_0 - \delta)}{\delta}\Big]^2+ 4} \sqrt{\Big[\dfrac{f(x_0 + \delta) - f(x_0)}{\delta}\Big]^2+ 1} \sqrt{\Big[\dfrac{f(x_0 + \delta) - f(x_0 - \delta)}{\delta}\Big]^2+ 1} }{2\Big|\dfrac {f(x_0 + \delta) + f(x_0 - \delta) - 2f(x_0)}{\delta^2}\Big|} \end{split} δ0limR=2 δ2f(x0+δ)+f(x0δ)2f(x0) [δf(x0+δ)f(x0δ)]2+4 [δf(x0+δ)f(x0)]2+1 [δf(x0+δ)f(x0δ)]2+1 =2 δ2f(x0+δ)+f(x0δ)2f(x0) [δf(x0+δ)f(x0δ)]2+4 [δf(x0+δ)f(x0)]2+1 [δf(x0+δ)f(x0δ)]2+1
综上,求路径半径及其曲率的公式为
R = lim ⁡ δ → 0 R = { 1 + [ f ′ ( x 0 ) ] 2 } 3 2 ∣ f ′ ′ ( x 0 ) ∣ R = \lim_{\delta \rightarrow0}R =\displaystyle \frac{\big\{1+\big[f'(x_0)\big]^2\big\}^{\frac 32}}{|f''(x_0)|} R=δ0limR=f′′(x0){1+[f(x0)]2}23
κ = 1 R = ∣ f ′ ′ ( x 0 ) ∣ { 1 + [ f ′ ( x 0 ) ] 2 } 3 2 \kappa = \frac 1R =\displaystyle \frac{|f''(x_0)|}{\big\{1+\big[f'(x_0)\big]^2\big\}^{\frac 32}} κ=R1={1+[f(x0)]2}23f′′(x0)


  1. 刘金堂的知乎专栏:https://zhuanlan.zhihu.com/p/590653546 ↩︎文章来源地址https://www.toymoban.com/news/detail-860268.html

到了这里,关于图形几何学——圆形:圆弧与曲率的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Core Animation实战三(图层几何学),【一步教学,一步到位

    //calculate hour hand angle //calculate minute hand angle CGFloat minsAngle = (components.minute / 60.0) * M_PI * 2.0; //calculate second hand angle CGFloat secsAngle = (components.second / 60.0) * M_PI * 2.0; //设置锚点 self.hourLabel.layer.anchorPoint =self.minuteLabel.layer.anchorPoint =self.secondLabel.layer.anchorPoint = CGPointMake(0.5f, 0.9f); //r

    2024年04月25日
    浏览(26)
  • 【生物力学】《人体骨肌系统生物力学》- 王成焘老师 - 第2章 - 人体几何学测量与仿真建模

    第1章 回到目录 第3章 人体测量学 (anthropometry) 是人类学的一个分支学科,旨在通过对人体整体和局部测量,探讨人体的类型、特征、变异和发展规律。人体几何仿真建模是通过数字化技术构建数字化的人体模型,数字化的人体模型能够精确地再现人体复杂的三维结构,其应用

    2024年02月10日
    浏览(28)
  • CGAL的三角网格曲面脊线和脐点的近似计算(需要微分几何学的知识)

             脊线(Ridges) :在光滑曲面上,脊线是一种特殊的曲线。沿着这条曲线,曲面的一个主曲率在其曲率线上达到极值(最大或最小)。这意味着脊线是那些曲率发生突变的区域,它们在形状感知、物体识别和计算机图形学中都有重要的应用。         脐点(U

    2024年02月03日
    浏览(34)
  • 【计算几何】判断一条线段和一段圆弧是否相交 & C++代码实现

    最近做项目,需要判断一条线段是否和一段圆弧相交,网上也没找到很好的解答(最主要是没有直接可以搬来用的代码,或者思路写得太过高深,我看不懂),于是决定自己想一个方法,写一个博客,将实现思路和完整代码都分享出来 线段可用两个点表示,点的对象如下所示

    2024年02月01日
    浏览(47)
  • 【前端知识】Three 学习日志(十)—— 常见几何体(长方体、球体、圆柱、矩形平面、圆形平面)

    Three 学习日志(十)—— 常见几何体(长方体、球体、圆柱、矩形平面、圆形平面) 一、构建常用几何体 二、 遍历加入场景中 三、效果展示 四、完整代码

    2024年02月07日
    浏览(26)
  • 【matplotlib基础】--几何图形

    除了绘制各类分析图形(比如柱状图,折线图,饼图等等)以外, matplotlib 也可以在画布上任意绘制各类几何图形。 这对于计算机图形学、几何算法和计算机辅助设计等领域非常重要。 matplitlib 中的 patches 类提供了丰富的几何对象, 本篇抛砖引玉,介绍其中几种常用的几何

    2024年02月08日
    浏览(35)
  • PostGIS:几何图形输出

    5.9.1. Well-Known Text (WKT) 5.9.1.1. ST_AsEWKT ST_AsEWKT -返回具有SRID元数据的几何体的已知文本(WKT)表示。 5.9.1.1.1. 概要 5.9.1.1.2. 描述 返回以SRID为前缀的几何图形的知名文本表示形式。可选参数可用于减少输出中使用的浮点数后的最大十进制位数(默认为15)。 此函数支持3d,并且不会删

    2024年02月16日
    浏览(23)
  • 计算机图形学:二维图形的几何变换(算法原理及代码实现)

    对于一个二维图形作平移、旋转、放缩变换,可以转换为在二维坐标系中图形的所有点分别可以对应到在x,y轴方向分别平移tx,ty(平移)、绕一点旋转固定的角(旋转)、在x,y轴方向分别放缩sx,sy倍。 对于变换的原理,只需要将原图形的点通过极坐标或者相加、相乘,再

    2024年02月11日
    浏览(27)
  • Qt鼠标拖动绘制基本几何图形

    用Qt鼠标事件实现基本几何图形的绘制,支持直线、矩形、圆形、椭圆。后期可以在此基础上进行扩展。 效果图 实现 本示例使用QGraphics体系来实现,因为要移动对象,所以生成的图形必须是一个单独的对象,鼠标拖动绘制的过程是在临时层中完成,release后生成一个矢量的图

    2024年02月13日
    浏览(27)
  • Procedural Mesh: 创建复杂的3D几何图形

    Procedural Mesh 是一个用于创建复杂3D几何图形的开源库,由 Morten Nobel 开发并维护。它允许开发者通过程序化的方式生成各种形状和结构,无需手动设计每个顶点和面。 Procedural Mesh 提供了一系列函数和工具,可以帮助开发者轻松地生成自定义的3D网格。这些功能包括: 基础形状

    2024年03月15日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包