计算三次贝塞尔曲线长度的廉价方法

2024-01-26

三次贝塞尔曲线长度的解析解 看似不存在,但并不代表 编写廉价的解决方案并不存在。我所说的“便宜”是指 50-100 ns(或更短)范围内的时间。

有人知道类似的事情吗?可能分为两类:

1) 错误较少,如 1%,但代码速度较慢。 2) 错误更多,例如 20%,但速度更快?

我通过谷歌扫描了一下,但没有 找到任何看起来不错的解决方案。只有类似 N 条线段上的除法之类的东西 并对 N sqrt 求和 - 太慢而无法提高精度, 对于 2 或 3 个片段来说可能太不准确。

有更好的吗?


另一种选择是将弧长估计为弦和控制网之间的平均值。在实践中:

Bezier bezier = Bezier (p0, p1, p2, p3);

chord = (p3-p0).Length;
cont_net = (p0 - p1).Length + (p2 - p1).Length + (p3 - p2).Length;

app_arc_length = (cont_net + chord) / 2;

然后,您可以递归地将样条线段分成两段,并计算直到收敛的弧长。我自己测试了一下,它实际上收敛得很快。我从这里得到了这个想法forum https://www.opengl.org/discussion_boards/showthread.php/172373-3D-Cubic-Bezier-Segment-Length.

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

计算三次贝塞尔曲线长度的廉价方法 的相关文章

  • 信号与信号2

    我的应用程序可能会受益于使用 boost 的信号库之一而不是本土解决方案 该应用程序是多线程的 但执行信号处理的部分是单线程的 如果多线程不是问题 是否有任何理由更喜欢 Boost Signals2 而不是 Boost Signal Boo
  • Winform DatagridView 数字列排序

    我只使用一个简单的 DataGridView 来保存一堆数据 有趣的是 我在特定列中有小数 但是当按小数列排序时 它的排序是错误的 例如 起始顺序可能是 0 56 3 45 500 89 20078 90 1 56 100 29 2 39
  • 如何通过 libwebsocket 发送异步数据?

    我正在将 Warmcat 的 libwebsocket C 库用于小型 Websocket 服务器 我已经启动并运行了这些示例 并且可以发送数据以响应从 websocket 接收数据 例如回显发送的反向字节 但是 我无法弄清楚如何在不使用
  • 无法将参数从 `const char *` 转换为 `char *`

    鉴于此代码 void group build int size std string ips Build the LL after receiving the member list from bootstrap head new memb
  • 选择initializer_list迭代器定义

    Why std initializer list
  • 在 .NET Core 中从 HttpResponseMessage 转换为 IActionResult

    我正在将之前在 NET Framework 中编写的一些代码移植到 NET Core 我有这样的事情 HttpResponseMessage result await client SendAync request if result St
  • 如何使用 CUDA/Thrust 对两个数组/向量根据其中一个数组中的值进行排序

    这是一个关于编程的概念问题 总而言之 我有两个数组 向量 我需要对一个数组 向量进行排序 并将更改传播到另一个数组 向量中 这样 如果我对 arrayOne 进行排序 则对于排序中的每个交换 arrayTwo 也会发生同样的情况 现在 我知
  • C# 中的抽象类和接口类有什么不同?

    C 中的抽象类和接口类有什么不同 An 接口不是类 它只是一个contract定义了public一个类的成员must实施 抽象类只是一个类 您从中可以cannot创建一个实例 通常您会使用它来定义一个基类 该基类定义了一些virtual方法
  • 原子存储抛出错误

    我最近升级到了 C 11 兼容编译器 并且尝试将一些代码从 boost 更新到 c 11 标准 我在使用atomic store转换一些代码时遇到了问题 这是一些简单的测试代码 似乎会引发编译器错误 int main std shared
  • asp.net core http 如果没有内容类型标头,则删除 `FromBody` 忽略

    我在 http 中使用 bodyDELETE要求 我知道目前删除主体是非标准的 但是允许的 使用时出现问题HttpClient它不允许删除请求的正文 我知道我可以使用SendAsync 但我宁愿让我的 API 更加灵活 我希望这个机构是可选
  • 查找方法不适用于 EF6.1 模拟

    我已经使用这些 msdn 指南设置了模拟 使用模拟框架进行测试 EF6 及以上 http msdn microsoft com en us data dn314429 var bsAc db BusAcnts FirstOrDefault
  • ASP.net WebForms - 在标记中使用 GetRouteUrl

    我一直在尝试弄清楚如何将路由功能与 ASP net 4 0 WebForms 一起使用 我将一条路线添加到我的路线集合中 void Application Start RegisterRoutes RouteTable Routes voi
  • 在 C# 命令行应用程序中包含并执行 EXE

    所以我找到了一个很棒的小 EXE 命令行应用程序 我们将其称为 program exe 它输出一些我想用 C 操作的数据 我想知道是否有一种方法可以将program exe 打包 到我的Visual Studio项目文件中 这样我就可以将编
  • 调试错误:在 vc++ 项目中使用 COM 时发生 所需的运行时?

    我为我的工作创建了一个 COM 组件 我也注册了该组件 在我的系统上 我有两个虚拟机工作站 在我的第一个工作站中 它运行良好 在我的第二个工作站中 它显示一个包含消息的错误框该程序需要一段时间并以不寻常的方式关闭 请联系应用程序管理员 我认
  • 在特定线程上运行工作

    我想要一个特定的线程 任务队列并在该单独的线程中处理任务 应用程序将根据用户的使用情况创建任务并将其排队到任务队列中 然后单独的线程处理任务 即使队列为空 保持线程活动并使用它来处理排队任务也至关重要 我尝试过几种实现TaskSchedul
  • 如果仅使用第一个元素,是否必须为整个结构分配内存?

    我有一个结构 其中第一个元素被测试 并且根据其值 结构的其余部分将被读取或不会被读取 在第一个元素的值指示结构的其余部分不会被读取的情况下 我是否必须为整个结构或仅第一个元素分配足够的内存 struct element int x int
  • 基础设施 - 同步和异步接口和实现? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在实现库 基础设施时 并且该 API 的用户希望同步和异步使用代码 我读到混合同步和异步并不是一个好主意 例如 同步实现包括等待异步实现 显然
  • 使用C标准数学库精确计算标准正态分布的CDF

    标准 C 数学库不提供计算标准正态分布 CDF 的函数 normcdf 然而 它确实提供了密切相关的函数 误差函数 erf 和互补误差函数 erfc 计算 CDF 的最快方法通常是通过误差函数 使用预定义常量 M SQRT1 2 来表示 d
  • C# PasswordDeriveBytes:似乎 Salt 并不重要

    可能我误解了什么 以下代码通过 CryptDeriveKey 使用两种不同的盐生成两个相等的密钥 这是控制台结果 盐1 21 3e 18 a3 9a 8b 5f gt 键 da 89 ea 3d 91 08 20 98 20 e9 dc 4
  • 如何通过API退出Win32应用程序?

    我有一个使用 Win32 API 编写的 C Win32 应用程序 我希望强制它在其中一个函数中退出 有没有类似的东西Exit or Destroy or Abort 类似的东西会终止它吗 哎呀呀呀呀呀呀 不要做任何这些事情 exit 和

随机推荐

  • Angular 2 HTTP 超时

    我在发布有关 HTTP 超时的自定义错误消息时遇到问题 这是一个简单的例子 return this http get url timeout 5000 new Error Error message 我看到大家都用新错误 错误消息 但我收到
  • WebView中的支付流程(Android)

    我有一个支付网关的网址 我需要在其中输入信用卡号等 我可以使用 WebView 打开此页面并直接在我的应用程序中付款吗 不打开像 Chrome 这样的单独的网络客户端 谷歌对于用户直接在 WebView 中输入信用卡 借记卡信息的应用程序发
  • 在控制台应用程序内以静默方式使用 ADFS 进行身份验证

    我有一个引用 ADAL net 库的 C 控制台应用程序 Microsoft IdentityModel Clients ActiveDirectory 版本 2 19 208020213 控制台应用程序的目的是使用受 ADFS 保护的 H
  • 如何使用 Tkinter 设置网格的位置?

    甚至可以在 Tkinter 中设置网格的绝对位置吗 我正在尝试创建一个如下所示的 GUI 但我可能采用了错误的方式 那么如果可以的话 网格位置如何设置呢 目标图形用户界面 到目前为止 我的 GUI 的结果是这样的 如您所见 我的新联系人需要
  • 对每组的一定比例进行采样,但具有最小约束(使用 dplyr)

    我有 6 个类别 阶层 的总体 我想在每个阶层中取 10 作为样本 这样做我采取 var c rep A 10 rep B 10 rep C 3 rep D 5 E F var value rnorm 30 dat tibble var v
  • 如何使用角度日期管道从数字中获取月份名称

    我想使用 Angular 的日期管道显示包含 本地化 月份名称的下拉列表
  • boost::multi precision::uint128_t sizeof 是 24

    基础数学 128 8 16 的说法不同 我有点失望 想要一些答案 因为从我习惯的情况来看 该符号 type num of bytes t 不仅描述了您可以放入变量的数据量 但是也跨平台固定可变大小 恕我直言 后者更为重要 我究竟做错了什么
  • 在 Node JS 集群之间划分快速路由

    我在 Node JS 应用程序中有大量路由 我正在尝试扩展到多个 CPU 核心 通过 NodeJS 集群 我的计划是让不同的工作人员处理一组不同的express js 路线 例如 api requests handled by Worker
  • 使用Python从gmail发送电子邮件

    我正在尝试通过构建对我有用的程序 脚本来自学如何编程 我正在尝试重新编写我在网上找到的脚本 以使用 python 脚本通过 gmail 发送电子邮件 Source http kutuma blogspot com 2007 08 sendi
  • 错误 TS2304:找不到名称“ImageCapture”且已安装 @types/w3c-image-capture

    我正在使用 Ionic 4 和 Angular 7 开发 PWA 我需要访问网络摄像头 如果存在 然后在画布中渲染 在这个过程中我使用图像捕捉 https developer mozilla org en US docs Web API I
  • 设置驱动器卷标签

    我正在开发一个小型实用程序 我想在其中更改连接到计算机的闪存驱动器上的卷标 我知道 DriveInfo 能够做到这一点 但我不知道如何实现它 如果有人有代码示例 我将非常感激 这是我目前拥有的 DriveInfo allDrives Dri
  • 如何在 ListView 构建器中创建与 flutter 中旁边的标签一致的按钮列表?

    我需要制作这个应用程序 在 flutter 中使用 ListView 显示历史人物列表 到目前为止我已经能够列出历史人物的名字了 我的下一个任务是为名称旁边的每个历史人物制作一个按钮 这会将您带到另一个屏幕 其中包含有关该特定历史人物的信息
  • Python中的成对叉积[重复]

    这个问题在这里已经有答案了 如何获取交叉产品列表pairs来自Python中任意长列表的列表 Example a 1 2 3 b 4 5 6 crossproduct a b 应该产生 1 4 1 5 1 6 您正在寻找itertools
  • Flutter readAsBytesSync 文件读取不完整以进行 base64 编码

    项目清单 我正在尝试通过 HTTP POST 使用 base64 编码将 JPG 图像 由模拟器中的 ImagePicker 捕获 发送到 AWS REST API 但是 readAsBytesSync 操作仅读取图像的 头 部分 我已经测
  • C# String.IsNullOrEmpty:好还是坏?

    在工作中发生一次我将 String IsNullOrEmpty 与 Session 变量一起滥用的事件之后 我的一位同事现在拒绝接受我对 String IsNullOrEmpty 的使用 经过一番研究 显然 MSDN 上列出了 IsNull
  • 用于检查 zip 文件是否损坏的 Python 脚本

    如何检查 zip 文件是否损坏 我有一个包含 10 张 jpg 图像的 zip 文件 我能够提取其中 8 张图像 zip 中的两个图像已损坏 我无法提取它们 有没有办法在 Python 脚本中检查这一点 此代码将抛出异常 如果 zip 文件
  • 如何获取准确的浏览器名称和版本?

    我尝试了一些解决方案 但无法获得确切的名称和版本 我正在尝试以下代码 browserAgent SERVER HTTP USER AGENT echo browserAgent 上述代码的输出 Mozilla 5 0 X11 Linux i
  • Handsontable:如何更改渲染函数中的单元格值

    我有类似的代码
  • 将 pdb 文件包含到我的 nuget (nupkg) 文件中

    我正在使用 MSBuild 生成我的 nuget 包 我是否需要设置任何命令 以允许它包含我的 pdb文件 以便在调试时进入源代码 我不希望将源文件包含到拉入 nuget 包的项目中 生产 最简单的配置方法是有一个Directory Bui
  • 计算三次贝塞尔曲线长度的廉价方法

    三次贝塞尔曲线长度的解析解 看似不存在 但并不代表 编写廉价的解决方案并不存在 我所说的 便宜 是指 50 100 ns 或更短 范围内的时间 有人知道类似的事情吗 可能分为两类 1 错误较少 如 1 但代码速度较慢 2 错误更多 例如 2