[摘要]Photoshop中比较常用的一个功能就是曲线调整,如图通过鼠标添加、删除、拖动曲线节点,这样即可调整图像参数。这个功能就其思路来说(这里只考虑曲线本身,数据存储等不在此列),是比较简单的:曲线由一...
Photoshop中比较常用的一个功能就是曲线调整,如图

通过鼠标添加、删除、拖动曲线节点,这样即可调整图像参数。这个功能就其思路来说(这里只考虑曲线本身,数据存储等不在此列),是比较简单的:
曲线由一组Point表示节点
鼠标移动节点实际是修改单个Point
插入删除Point
一个节点是一个手柄Handle,就是一个小方块
在Paint里画出一条经过所有节点的曲线DrawCurve
随便画个十字准星表示当前节点
鼠标按下,判断是否在某个已有节点里,如果有,标记之,否则添加新节点
鼠标按下且移动,如果已有节点,则节点坐标为鼠标坐标
刷新画图
完成后的程序操作演示(动画):

下面是部分示例代码:
节点:
List<Point> points;