二维绘图,怎么选择在单根曲线上,放置标识,并按下鼠标左键在曲线上移动?

duguyun 2017-03-20 11:38:29
需要编写一段代码,从各个文件中的提取数据,绘制成二维曲线图(类似Excel中的散点图),文件很多,所以在同一坐标中可能绘制很多,甚至上百根曲线,这些曲线很接近,很多还部分重叠,
用户想通过鼠标点击在曲线上放置比如十字标识,选择曲线,按下鼠标左键,可以沿着选择的曲线移动该标识,同时获取该曲线的句柄,请问该怎么实现呢?

具体相当于,类似实现Matlab中的Data Cursor的功能,使鼠标能把标识放在某根曲线上,按下左键,移动鼠标,标识就能固定地沿着该曲线移动,而不会消失或跑到其他曲线上去,同时获得对应曲线的句柄

谁有想法或源码,能提示下吗?
谢谢!


...全文
127 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2017-03-22
  • 打赏
  • 举报
回复
选择曲线,只要根据点击的x位置,计算曲线的y值,和点击的y位置最接近的,就是那条曲线。 意思是要计算每一条曲线的y值,最接近鼠标点击的y位置的,就是那条曲线。 点击的时候,最好点击在曲线比较平坦的部分,这样计算y值容易选择到曲线。 不知道你熟悉哪种图形用户界面编程框架?我只会C++ Builder,所以我说的你可能也用不了,但是原理都是一样的。
duguyun 2017-03-22
  • 打赏
  • 举报
回复
谢谢, 但我还是不明白怎么实现 选择曲线,只要根据点击的x位置,计算曲线的y值,和点击的y位置最接近的,就是那条曲线。 可以获得鼠标点击的位置,但有很多曲线可能重叠,那我的标记到底该放在哪根曲线上呢? 标识的话可以是一个window(好像图片热点),有句柄,能点击,能移动,也能接受按键(比如delete删除),顺着曲线移动很简单,随着鼠标移动的x位置,计算曲线的y值,就是标识的位置。 这个我也是这么想的,但我不知道怎么实现,所以才来这里向大家请教,有没有相关源码,看看是怎么实现的 谢谢
ooolinux 2017-03-21
  • 打赏
  • 举报
回复
曲线的句柄指什么?你程序内部肯定有一个表格(数组),用来管理曲线,是不是获取表格索引的意思?索引代表那条曲线。 选择曲线,只要根据点击的x位置,计算曲线的y值,和点击的y位置最接近的,就是那条曲线。 标识的话可以是一个window(好像图片热点),有句柄,能点击,能移动,也能接受按键(比如delete删除),顺着曲线移动很简单,随着鼠标移动的x位置,计算曲线的y值,就是标识的位置。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧