如何测量屏幕任意两点间的距离?

gcrdf 2010-07-17 02:36:33
如何测量屏幕任意两点间的距离?
哪种语言可以实现?
...全文
1329 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
miracle222 2010-07-23
  • 打赏
  • 举报
回复
点击有点击时间,消息响应函数的参数里包含了坐标值的信息
gcrdf 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 miracle222 的回复:]
你鼠标点击一下,事件中就包含了像素点的坐标,点两次,记录下来再求这两点的距离就可以了
[/Quote]
1、通过调用API获得的两点的坐标值都是以这个红点为原点的吗?

2、如果这两个黑点没有点在窗体中,而点在了窗体外面(屏幕上),通过调用API获得的坐标值是以屏幕左上角(0,0)为原点的吗?
ForestDB 2010-07-20
  • 打赏
  • 举报
回复
LZ用的VB?
那两个点怎么上去的?
gcrdf 2010-07-20
  • 打赏
  • 举报
回复
在这个窗体中用鼠标左键点击一下,如何知道这个点的坐标值?
miracle222 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 gcrdf 的回复:]

引用 26 楼 miracle222 的回复:
你鼠标点击一下,事件中就包含了像素点的坐标,点两次,记录下来再求这两点的距离就可以了

1、通过调用API获得的两点的坐标值都是以这个红点为原点的吗?

2、如果这两个黑点没有点在窗体中,而点在了窗体外面(屏幕上),通过调用API获得的坐标值是以屏幕左上角(0,0)为原点的吗?
[/Quote]
这样的话,你就捕捉桌面的鼠标事件吧,不过这个好像要用到钩子,具体没用过。下面这个是网上的做法。
利用钩子,SetWindowsHookEx( WH_CALLWNDPROC, CallWndHookProc, glhInstance, 0 );然后截获鼠标单击事件。你可以看看文档,看这个函数怎么用吧。好像记得孙鑫的教程里面也有一个截取鼠标还是键盘消息的例子吧,如果有的话,可以去看看。
lvyexian 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 gcrdf 的回复:]
引用 12 楼 matrixcl 的回复:
先取两点坐标(x1,y1)(x2, y2)
然后 sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))

至于怎么取两点坐标 依赖于你想求哪两点的距离
例如取鼠标左键按下时的坐标,在WM_LBUTTONDOWN 消息中
xPos = LOWORD(lParam);
yPos = HIWORD(lParam);

……
[/Quote]

系统默认屏幕左上角为原点,向右为X轴正方向,向下为Y轴正方向,单位为像素。
miracle222 2010-07-19
  • 打赏
  • 举报
回复
你鼠标点击一下,事件中就包含了像素点的坐标,点两次,记录下来再求这两点的距离就可以了
miracle222 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 gcrdf 的回复:]

图中这个红点就是坐标原点吗?
[/Quote]
是的。。
heguanjie 2010-07-19
  • 打赏
  • 举报
回复
原点在哪里不会影响结果,只要知道两个点的坐标就可以,这个个Windows API里有这个函数的。
gcrdf 2010-07-19
  • 打赏
  • 举报
回复
图中这个红点就是坐标原点吗?
yanyan3fish 2010-07-19
  • 打赏
  • 举报
回复
可以获取图像当前像素的坐标,然后用距离公式求出来。
gcrdf 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 jbz001 的回复:]
这个只可以测出两点之间的像素距离,要计算物理距离还要乘以像素大小,这个好像可以通过那个API获取。
[/Quote]
这个窗体程序的坐标原点在哪?是在左上角吗?
jbz001 2010-07-19
  • 打赏
  • 举报
回复
这个只可以测出两点之间的像素距离,要计算物理距离还要乘以像素大小,这个好像可以通过那个API获取。
gcrdf 2010-07-19
  • 打赏
  • 举报
回复
我没能正确表达我的意思,用图说明吧,比如,我编写了一个如图所示的窗体程序,我怎样计算图中这两点间的水平距离?
dreamcs 2010-07-19
  • 打赏
  • 举报
回复
用尺量
  • 打赏
  • 举报
回复
两点间的距离??每个编程语言都可以用公式得出的吧?

nut799 2010-07-19
  • 打赏
  • 举报
回复
不需要指定原点啊, 求距离只需要知道两点坐标(x1,y1) (x2,y2)就好了啊, 原点在哪 不影响结果。因为距离只和他们之差有关。


Distance=sqrt((x1-x2)^2+(y1-y2)^2)
黑泡泡选手 2010-07-19
  • 打赏
  • 举报
回复
截图,使用windows画图工具就可以得到大概的距离。。。
gcrdf 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 matrixcl 的回复:]
先取两点坐标(x1,y1)(x2, y2)
然后 sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))

至于怎么取两点坐标 依赖于你想求哪两点的距离
例如取鼠标左键按下时的坐标,在WM_LBUTTONDOWN 消息中
xPos = LOWORD(lParam);
yPos = HIWORD(lParam);
[/Quote]
怎样自己指定某点为原点?
fcly1981826ly 2010-07-18
  • 打赏
  • 举报
回复
学习学习学习
加载更多回复(11)

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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