对一系列线段进行曲线拟合

2023-12-02

SO 有很多曲线拟合问题,但我似乎找不到一个可以解决我正在寻找的问题。

场景很简单:我在平板电脑屏幕上捕获 X/Y 点。我想将生成的线段绘制为平滑曲线而不是一系列线段。许多应用程序都会这样做,例如:倒数第二个 (草图演示 0:36) or 欧特克素描本.

贝塞尔曲线算法需要固定数量的点来绘制曲线,并且似乎不适用于大量的多个点。谁能指出一种算法可以很好地做到这一点?


事实上,拟合曲线是样条曲线而不是贝塞尔曲线。但是,您可以使贝塞尔曲线看起来像样条线(样条线没有控制点)。我对这个问题进行了很多搜索,并向自己介绍/实现了很多过于复杂的算法,最后我发现这个任务比我想象的要容易得多(我确实觉得它必须如此,我发誓:))

Here is最好的描述,我将从这篇文章中摘录:

在大多数实现中,贝塞尔曲线绘制函数采用两个控制点和一个点本身(对于一个线段)作为参数,因此您需要的只是迭代地查找新线段的控制点(我认为最好更新最后一个线段和为每个新点在曲线末尾绘制一个新点):

这是 JavaScript 代码(t最简单的情况是曲线的恒定平滑度):

function getControlPoints(x0,y0,x1,y1,x2,y2,t){
    var d01=Math.sqrt(Math.pow(x1-x0,2)+Math.pow(y1-y0,2));
    var d12=Math.sqrt(Math.pow(x2-x1,2)+Math.pow(y2-y1,2));
    var fa=t*d01/(d01+d12);
    var fb=t*d12/(d01+d12);
    var p1x=x1-fa*(x2-x0);
    var p1y=y1-fa*(y2-y0);
    var p2x=x1+fb*(x2-x0);
    var p2y=y1+fb*(y2-y0);  
    return [p1x,p1y,p2x,p2y];
}

请务必阅读并理解这篇文章,我认为这是一篇最好、最短、最清晰的文章。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对一系列线段进行曲线拟合 的相关文章

  • 绘制曲线连接网页上的元素

    I have been tasked with turning this rough idea into a live page 虽然我已经建立了基本结构 但我想知道创建连接月份的曲线的最佳方法 我应该只创建图像并覆盖它们吗 有没有办法用某
  • 如何在Windows桌面上绘制文字?

    我该如何将文本放置在 Windows 桌面上 有人告诉我 GetDesktopWindow 是我所需要的 但我需要一个例子 我假设您的最终目标是在桌面上显示某种状态信息 您必须执行以下任一操作 将 DLL 注入到 Explorer 的进程中
  • 如何在 C# 中绘制面板?

    嘿 我需要在 C 中的面板上进行绘图 但没有将绘图代码放在 panel1 Paint 中 我该怎么做 顺便说一句 我正在使用 WinForms Update 我忘了说清楚 我不需要将绘图代码放在绘图处理程序中 因为我需要根据按钮的事件开始绘
  • 绘制 3D 线,matlab

    我的问题非常标准 但找不到解决方案 我有点 x y z 并想绘制最佳拟合线 我正在使用下面给出的函数 和 Thanx Smith LS3DLINE M Least squares line in 3 dimensions Version 1
  • 耳朵图像处理 - 在 MATLAB 中查找直线和曲线的交点

    1 https i stack imgur com j3ZRQ jpg我有一只耳朵的 Canny 边缘输出 我用一条线 绿色 连接了最远的两个边界 现在我想从这条线的中点到外边界 左侧 绘制一条法线 我编写的代码帮助我绘制法线 但我希望红线
  • 有没有办法忽略文本文件中某些行的读取?

    我正在尝试读取 C 应用程序中的文本文件 但我不想读取前两行或最后一行 文件中有 8 行 所以实际上我只想读取第 3 4 5 6 和 7 行 有什么办法可以做到这一点吗 示例文件 USE Shelley s Other Database C
  • 有没有一种在不使用图像的情况下使用 HTML5 canvas 和 javascript 动态绘制云的好方法?

    我正在尝试为我的网站创建一个背景 该背景使用画布来绘制内容 获取它的数据 URL 并将其设置为元素的背景图像属性 该方法有效 但我找不到在画布上绘制云的好方法 其他更简单的东西 比如太阳和星星 在没有图像的情况下很容易完成 我更愿意让整个脚
  • 如何使用 Win2D 计算 FontFamily 的高度(行距)?

    我想知道如何在 Window 通用应用程序中计算给定字体的高度 及其属性 如大小 粗细 样式 使用Win2D 我以前用过一个CanvasTextLayout 但它需要一个text工作 就像这一行 var ctl new CanvasText
  • C#:绘制自己的条形图

    我正在尝试通过绘制一个简单的条形图C 但我从未尝试过 Graphics 和 Drawing 命名空间 我想生成一个 开始 和 结束 图形 然后以某种方式重复图像 以显示 长度 但我不知道如何做到这一点 如果您能指出正确的方向和 或您有示例代
  • 如何使用 javascript 将 svg use 元素插入 svg 组?

    我有一个 svg 文件 其中包含一个具有单行元素的组 我可以利用use元素并在我想要的任何位置制作多个参考副本 但是 我想使用 javascript 来添加和删除use动态元素 有没有办法使用javascript插入svguse我的行元素进
  • 使用 jQuery 在图像上“绘制”简单线条并保存到 Rails DB 的最简单方法是什么?

    我想在图像上画线 基本上允许用户为他们喜欢的山路绘制一条路径 1 有谁知道一个好的简单的绘制基本线条的库吗 2 用户在图像上绘制一堆线条后 将数据保存到数据库的最佳方式是什么 画线 Paper js http paperjs org 看着那
  • 椭圆绘制WPF动画

    我正在开发一个矩形区域的控件 当触发发生时 将在矩形区域中绘制一个椭圆形 该控件将能够承载其他控件 例如文本框 按钮等 因此在触发时将在它们周围绘制圆圈 我希望将圆圈绘制为动画 就像您用笔圈出内部控件一样 实现这一目标的最佳方法是什么 我一
  • 使用 DrawImage 方法黑屏

    我必须使用绘制位图图像绘图上下文 DrawImage http msdn microsoft com en us library ms606804 28v vs 90 29 aspx method 使用下面的代码一切正常 BitmapIma
  • 快速以编程方式清除 NSView

    我有一个NSView连接到自定义类 该视图上有一些图画 class LineDrawer NSView var linear NSBezierPath var storage NSUserDefaults standardUserDefau
  • 在 Vim 中的缩进线上按“Home”

    我有一个坏习惯 就是使用 home 键返回到行首 当我最近开始使用 vim 时 我注意到当我在缩进的行上按 home 键时 它会让我回到该行的开头 在 Notepad 我曾经使用的编辑器 中 它会让我返回到该行代码的开头 就在缩进之后 有没
  • Opengl 像素完美 2D 绘图

    我正在研究 2d 引擎 它已经工作得很好 但我不断收到像素错误 例如 我的窗口是 960x540 像素 我从 0 0 到 959 0 画一条线 我希望扫描线 0 上的每个像素都会被设置为一种颜色 但事实并非如此 最右边的像素没有被绘制 当我
  • Android Drawable 绘图性能?

    在我看来 我有一个简单的 ARGB 可绘制对象 大约需要 2 毫秒才能绘制 但我可以在 0 5 毫秒内绘制与位图相同的文件 只是一些快速代码 我真的不能认为它是一个选项 优化可绘制对象的绘制速度的最佳方法是什么 这取决于可绘制的数量以及每个
  • 用于自由形式绘图的 javascript 库

    是否有一个 JavaScript 库可以让我在网页上绘图 然后保存该绘图的状态 我想使用鼠标绘制 2D 图像 然后如何存储和加载该绘图 使用 HTML5 画布 绘制图像的简单示例如下 http jsfiddle net ghostoy wT
  • 获取 wpf WriteableBitmap 的 DrawingContext

    有没有办法获得DrawingContext 或类似的东西 WriteableBitmap IE 让你调用简单的东西DrawLine DrawRectangle etc 种方法 而不是直接操作原始像素 我发现 Sixlettervariabl
  • 适用于图形应用程序的快速、像素精度 2D 绘图 API?

    我想创建一个跨平台的绘图程序 编写应用程序的一个要求是画布上具有像素级精度 例如 我想编写自己的画线算法 而不是依赖别人的 我不想要任何形式的抗锯齿 同样 需要像素级控制 我希望屏幕上的用户交互快速且响应灵敏 取决于我编写快速算法的能力 理

随机推荐