标题:PictureBox 坐标精度的问题
只看楼主
lh69417
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-3-18
结帖率:66.67%
已结贴  问题点数:16 回复次数:3 
PictureBox 坐标精度的问题
'注意:这里设置Picture1、Picture2的ScaleWidth和ScaleHeight都是相同的
'但取坐标值时,Picture2不能得到保留四位小数的精确值而Picture1可以,可能与鼠标点击处坐标X和Y为单精度浮点型变量有关
'在不改变Picture2.Scale的设置条件下,Picture2如何取到保留四位小数的精确值?

Private Sub Form_Load()
Picture1.Scale (0, 1000)-(1000, 0)
Picture2.Scale (3278426.2345, 657915.4422)-(3279426.2345, 656915.4422)
'这里设置Picture1、Picture2的ScaleWidth和ScaleHeight都是相同的
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Label1.Caption = "X:" & Format(x, "0.0000") & ", Y:" & Format(y, "0.0000")
End Sub

Private Sub Picture2_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Label2.Caption = "X:" & Format(x, "0.0000") & ", Y:" & Format(y, "0.0000")
End Sub
搜索更多相关主题的帖子: 如何 
2014-04-01 09:26
茅十八
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:35
专家分:123
注 册:2014-3-11
得分:16 
扩大picture2的边框大小,提高鼠标单击处的位置精度

个人QQ:1789851851,有学习问题,欢迎找我讨论,另外Win32 SDK开发群:179492890
2014-04-03 21:56
lh69417
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-3-18
得分:0 
回复 2楼 茅十八
你的方法不可行,鼠标事件获得的坐标x、y是单精度浮点型的,只有4个字节,整数位数较长后,小数位数就减少了。
如果你有办法,将鼠标事件获得的坐标允许是双精度型(8个字节),这事就ok了。
2014-04-10 14:57
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
首先,屏幕的 精度是: 72像素每英寸。   一般情况下WIN平台都是这样的。
所以,你再多的小数,每像素的值是固定的。而鼠标点击的位置,最多也只能做到 像素 点为止。
系统产生的小数,也就是用 鼠标的坐标(像素)折算成内部坐标(单精度浮点)再多的小数位没有任何意义。
在这种情况下,你要提高精度:只能放大图像后,然后 自己计算这个换算关系 。

授人于鱼,不如授人于渔
早已停用QQ了
2014-04-10 17:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-429483-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.135018 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved