关于vb点虐 使用相对坐标的信息
VB.NET坐标变换
Dim g As Graphics = PictureBox1.CreateGraphics
创新互联建站专注于岱山网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供岱山营销型网站建设,岱山网站制作、岱山网页设计、岱山网站官网定制、微信小程序服务,打造岱山网络公司原创品牌,更为您提供岱山网站排名全网营销落地服务。
g.TranslateTransform(2, 2) ‘定义原点坐标
g.ScaleTransform(1, -1) ’X轴不变,反转Y轴
以PictureBox1中(2,2)点为新的原点(0,0)
向右为X轴正方向 向上为Y轴正方向
vb点虐 坐标的转化
也就是A(x,y)-------A'(y*sin(x*pi/180),y*cos(x*pi/180))------------前提是先:
Dim g As Graphics = Me.PictureBox1.CreateGraphics
g.TranslateTransform(x, y)'实现坐标平移,即把圆中心作为了坐标原点了-----该处的x,y为圆心在要作图picture中的相对坐标
g.ScaleTransform(1, -1) 'X轴不变,反转Y轴
vb 获取某窗口内相对坐标
仅提供解决思路。不提供代码,API请自己找齐。
这样以后你遇到类似问题可以自行解决。
以下为思路,看不懂请自己琢磨相关逻辑和API作用。
1.GetCursorPos 获取鼠标坐标 设获得的坐标为t_pos
2.WindowFromPoint 获取t_pos坐标指向的窗体 设获得的窗体句柄为hwnd
3.GetWindowRect 根据hwnd获取对应窗体坐标。此时t_pos与窗体坐标相减可以初步计算得相对坐标(包括标题栏等),设此时计算得坐标为pos
4.GetWindowLong 获取样式,判断是否存在WS_BORDER(是否有边框)
方法:
假设GetWindowLong,获取的样式保存在style中,则if style or WS_BORDER=style then 存在WS_BORDER else 不存在WS_BORDER
如果存在WS_BORDER即有边框,则再调用GetSystemMetrics得到边框和标题栏宽度高度,然后pos与之相减(减掉边框)得到坐标相对于客户区的坐标
如果不存在WS_BORDER,则pos直接就是相对于客户区的坐标(无边框)
vb中坐标系是如何定义的?如何表示绝对坐标和相对坐标。
窗体内的左上角的座标为(0,0),向右是.Left+,向左是.Left-,向下是.Top+,向上是.Top-;如果要使用相对座标,比如向右移动100,就可以写成Object.Left=Object.Left+100即可。
当前题目:关于vb点虐 使用相对坐标的信息
标题URL:http://azwzsj.com/article/ddghjdj.html