Qt Curve Editor

上周五一个同事分享 Qt 的一些经验,提到 Qt 的控件比较少,以前找个曲线编辑的控件都找不到。我想起自己前年不正好做了一个么,赶紧开源出来,给大家耍耍。代码见 Github


Qt 曲线编辑器


这个程序当时是为了给游戏做后处理用的。通过曲线和一张固定的纹理,可以给游戏画面加强想要的颜色。可惜后面由于一些变动,最后也没用上,不然倒是可以完善得更好。等以后给SagittaEngine 做场景编辑器时,再好好完善集成进去。


本项目中样条曲线的算法,来自 http://people.sc.fsu.edu/~jburkardt/c_src/spline/spline.html 。这是我在 2007 年就开始用的库,有多种曲线类型的高效的实现。当时和波波做 加速传感器(就是 wii手柄、iPhone 等里面的所谓的重力传感器)的运动识别,对于采样的数据,我们使用 自然三次样条曲线 做重采样以保证在做 hmm 计算时,比较的样本是在一个纬度。我的曲线编辑器目前提供了 自然三次样条曲线 ( Cubic Spline )、二次样条曲线 ( Quadratic Spline ) 和直线等三种曲线类型,如果你有兴趣,可以实现更多。曲线类型的扩展,请参考 libspline 文件夹下的 aaCurve.h (请原谅我在取名字上的随意,哈哈)

spline 库的实现

曲线编辑 Widget 是一个 Qt 的 OpenGL widget ,实现了基本的编辑功能。

鼠标右键 点击空白处 添加一个控制点

鼠标右键 点击已有控制点 删除该控制点

鼠标左键拖动控制点  编辑曲线

滚轮 缩放视图


有兴趣的同学可以下来玩玩。如果你的项目有需要,修改修改,也是完全可以用的。


demo 的编译

在 VS, Xcode 等 IDE 中使用 Qt,需要做不少配置,所以要做基于 Qt 的跨平台项目,要么使用 Qt Creator ,要么就用 cmake, 让它帮忙把 IDE 的配置做好。我一直以来都使用 cmake 做跨平台项目,这个曲线编辑器也是一样。

安装好 cmake 后,从终端进入到项目的根目录下,运行如下命令。

mkdir build
cd build
cmake -G Xcode ..

上述命令在 Mac 下会生成 Xcode 的工程,工程对 Qt 做了配置,moc,qmake 等都不需要自己去关心,你需要做的就是打开工程,编译,运行。

创建 build 目录并不是必需的,但这样有助于把代码和工程分开,通过上述 cmake 生成的工程,其所有的文件、moc生成的文件、编译的中间文件、编译的输出文件,都只在 build 目录下,这样能够保持代码目录的干净,版本库里面剔除出一个 build 目录就可以了。

如果在 Windows 下使用 Visual Studio, 以 2010 为例,那么最后一个命令可以这样

cmake -G "Visual Studio 10" ..

其他的编译器请参考 cmake 文档 - Generators


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值