我正在尝试构建一个应用程序,用户可以使用鼠标绘制布条曲线,即设置螺旋的起点和终点,然后通过拖动这些点来修改起始和结束曲率以设置布条曲线的形状。可能需要使用切线来改变曲率,但我不确定。如何在Qt中实现这个功能?您是否知道任何我可以在Qt中运行的示例代码?
最好的方法可能是使用Graphics View Framework。 在Graphics View Examples页面中有一些示例可以帮助您入门。其中Diagram scene看起来是您想要实现的一个很好的起点。
我知道这是一个老问题,但对于感兴趣的人,Kimia、Frankel和Popescu在论文“Euler Spiral for Shape Completion”中对欧拉螺旋(布洛伊德曲线)的理论和伪代码进行了很好的讨论。可以在布朗大学的网站上找到示例C ++代码。 Euler Spiral for Shape Completion 下载Kimia、Frankel和Popescu方法的C++代码的页面 Levien等人的论文提出了改进Kimia等人论文中“双弧”的计算的方法。Levien的论文包括深入的历史研究。 Raph Levien的论文“Euler spiral: a mathematical history” 您只需要四个参数来绘制螺旋线:两个端点和这些端点处的切线角度。(您不需要定义曲率。)该代码输出在您选择的距离增量下两个端点之间的中间点。您只需要绘制并连接这些中间点。一旦您实现了代码,您可能需要调整一些参数,例如最小曲率。您可能会看到一些参数导致代码“崩溃”。