时间:2011-07-26 10:02:56

标签: c++ math qt4

我正在尝试构建一个应用程序,用户可以使用鼠标绘制回旋加工线,即设置螺旋的起点和终点,然后用鼠标拖动这些点,他也可以设置形状通过修改开始和结束曲率来修改回旋曲线。可能是为了改变曲率,我需要使用切线但我不确定。

如何在Qt中实现?您知道我可以在Qt中运行的任何示例代码吗?

2 个答案:

答案 0 :(得分:3)

最好的方法可能是使用Graphics View Framework

有一些示例可以帮助您开始使用Graphics View Examples页面。 Diagram scene看起来像是你想达到目标的良好起点。

答案 1 :(得分:2)

我意识到这是一个古老的问题,但对于感兴趣的各方,在文章“Euler Spiral for Shape Completion”的文章中,对于Euler螺旋(回旋曲线)有一个很好的讨论理论和伪代码 ,弗兰克尔和波佩斯库。可以在布朗大学的网站上找到示例C ++代码。

Euler Spiral for Shape Completion

Page with download link for C++ code for method of Kimia, Frankel, and Popescu

Levien和其他人的论文提出了改进Kimia等人对论文“biarc”计算的方法。莱维恩的论文包含了深刻的历史。

The Euler spiral: a mathematical history by Raph Levien

您只需要四个参数来绘制螺旋:两个端点,以及这些端点处的切线角度。 (您无需定义曲率。)代码以您选择的距离增量输出两个端点之间的中间点。您只需绘制并连接这些中间点。

实施代码后,您可能需要调整一些参数,例如最小曲率。您可能会看到一些代码“爆炸”的参数。