VB 坐标原点问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 14:37:01
麻烦各位解决这样一个问题:
我已经用VB自动生成了若干个label,现在我想让这些label围绕一个指定的点(假设按初始坐标轴,此点的坐标为(X,Y))围成一个圈。请问如何把这个点指定为圆心。或者在不改变坐标轴的情况下,让这些label围绕这个点围成一个圈?

有好答案的话加分!!!!!!!
定义坐标系
object.Scale (x1, y1) - (x2, y2)
object可以是窗体或图片框
(x1,y1),(x2,y2)分别指定在新坐标系下object的左上角和右下角的坐标

!!!!!!!!!!我采用了这个方法,但是显示错误:pb.scale (45,61)-(400,450) (pb为图片框的名字)

警告 1 “Public Sub Scale(dx As Single, dy As Single)”已过时:“This method has been deprecated. Use the Scale(SizeF ratio) method instead. http://go.microsoft.com/fwlink/?linkid=14202” E:\Personal\Desktop\1\loop6\Form1.vb 105 9 loop6

错误 2 应为语句结束。 E:\Personal\Desktop\1\loop6\Form1.vb 105 25 loop6

!!!!还有,我要做的是输入数字,自动生成围绕原点的label,所有label数目是未知的,所以第二种方法不行。

给你一个比较笨的办法:
放置一个Command1,一个Picture1,在Picture1上放置4个Label
添加如下代码:
Private Sub Command1_Click()
y0 = Picture1.Height / 2 '原点
x0 = Picture1.Width / 2
r = 500 '半径
a = 3.1415926 * 2 / 4 '均分(这里的4是Label的个数)
Label1.Left = y0 + r * Sin(a * 0)
Label1.Top = x0 + r * Cos(0 * 0) '第一个Label 位置

Label2.Left = y0 + r * Sin(a * 1)
Label2.Top = x0 + r * Cos(a * 1) '第二个Label 位置

Label3.Left = y0 + r * Sin(a * 2)
Label3.Top = x0 + r * Cos(a * 2) '第三个Label 位置

Label4.Left = y0 + r * Sin(a * 3)
Label4.Top = x0 + r * Cos(a * 3) '第四个Label 位置

End Sub

定义坐标系
object.Scale (x1, y1) - (x2, y2)
object可以是窗体或图片框
(x1,y1),(x2,y2)分别指定在新坐标系下object的左上角和右下角的坐标

2楼的办法很好,我经常用。