首页 > 解决方案 > 有关 CGAL 和替代品的信息

问题描述

我正在研究一个最终将在嵌入式微控制器(ESP8266)中运行的问题。我需要对线性方程执行一些相当简单的运算。我不需要太多,但确实需要能够使用点和线性方程来:

  1. 为来自两个已知点或一个点和一个梯度的线定义方程
  2. 在方程线上计算一个新的 x,y 点,该点与该方程线上的另一个点有特定距离
  3. 从一点垂线到方程线上
  4. 对定义为方程的点和三角形边执行余弦规则计算的变化

不久前,我根据高中的“y = mx + c”概念粗略了一些代码,但它有缺陷(当线条垂直时它会因无穷大而失败),目前在 Scala 中。因为我怀疑我正在重新发明一个不是我主要目标的轮子,所以我想用别人的工作来做这件事!

我遇到过 CGAL,它似乎很可能具备所有这些以及更多功能,但我有两个问题(鉴于似乎需要很长时间才能对这种巨大的库有足够的了解才能真正能够回答简单的问题!)

  1. 它似乎在它的计算中断言某种数学完美,但这对我来说并不重要,而且我的系统将受到严重的内存限制。它是否使用/提供内存有效的近似值?
  2. 是否有可能(并且希望很容易)只分离出有限的功能子集,或者我是否会找到整个库(甚至是一个非常大的子集)进入我的内存有限的机器?

而且,我认为不可避免的后续行动:是否有更合适的库我不知道?

蒂亚!

标签: embedded2dlinear-equation

解决方案


你提到的问题听起来确实很简单,所以我想知道你是否真的需要任何库。也许如果您发布您的原始代码,我们可以帮助您修复它 - 您的问题听起来像您需要重做计算以避免除以零。

至于您的第 (2) 点,即从 CGAL 中分离有限数量的功能,给出该项目的大小和编码风格,根据我的经验,这将比修复自己的代码复杂得多(如果可能的话)。

如果您想尝试比 CGAL 更简单的库,也许您可​​以尝试Boost.Geometry

问候,


推荐阅读