怎样用vb实现坐标系?
请教各位高手,怎样用vb实现在一个窗体的左下显示坐标系,这里所说的坐标系就是那种简单的坐标系符号,带有箭头并标注x,y的那种。万分感激! --------------------编程问答-------------------- 可以用VB PictureBox的Line方法来实现.下面有个例子看看能不能用得上.--------------------编程问答--------------------
Private Sub Command1_Click()
Dim log10(10) As Integer
Picture1.Scale (-20, 230)-(350, -20)
Picture1.Line (0, 0)-(350, 0), vbBlue
Picture1.Line (340, -5)-(350, 0), vbBlue
Picture1.Line (340, 5)-(350, 0), vbBlue
Picture1.Line (0, 0)-(0, 230), vbBlue
Picture1.Line (-3, 220)-(0, 230), vbBlue
Picture1.Line (3, 220)-(0, 230), vbBlue
Picture1.Line (30, 5)-(30, 0), vbBlue
Picture1.Print "1"
For j = 0 To 2
For i = 1 To 10
If i = 10 Then
Picture1.Line ((log10(i) + j) * 100 + 30, 10)-((log10(i) + j) * 100 + 30, 0), vbBlue
Picture1.Print i ^ (j + 1)
Else
Picture1.Line ((log10(i) + j) * 100 + 30, 0)-((log10(i) + j) * 100 + 30, 5), vbBlue
End If
Next
Next
End Sub
Private Sub Form_paint()--------------------编程问答-------------------- 以下摘自MSDN:
With Picture1
.Height = Me.ScaleHeight
.ScaleMode = 6
oldx = 10
oldy = .ScaleHeight - 10
.Cls
'画坐标轴
Picture1.Line (oldx, .Top)-(oldx, .ScaleHeight), RGB(255, 0, 0)
Picture1.Line (0, oldy)-(.ScaleWidth, oldy), RGB(255, 0, 0)
End With
Picture1.CurrentX = oldx - 4
Picture1.CurrentY = oldy + 0.5
'画坐标原点
Picture1.Print 0
For xt = -Int(oldx) To Int(oldx)
If xt <> 0 Then
st = xt * 10
Picture1.CurrentX = oldx + st - 3
Picture1.CurrentY = oldy + 1
'画x轴的刻度
Picture1.Print xt
Picture1.Line (oldx + st, oldy - 1)-(oldx + st, oldy), RGB(255, 0, 0)
End If
Next xt
For yt = -5 To 7
If yt <> 0 Then
st = -yt * 10
Picture1.CurrentX = oldx - 4
Picture1.CurrentY = oldy + st - 1
'画y轴的刻度
Picture1.Print yt
Picture1.Line (oldx, oldy + st)-(oldx + 1, oldy + st), RGB(255, 0, 0)
End If
Next yt
End Sub
Private Sub Form_Resize()
Form_paint
End Sub
Scale 方法
用以定义 Form、PictureBox 或 Printer 的坐标系统。不支持命名参数。
语法
object.Scale (x1, y1) - (x2, y2)
Scale 方法的语法包含下列部分:
部分 描述
object 可选的。一个对象表达式,其值为“应用于”列表中的一个对象。如果省略 object,则带有焦点的 Form 对象缺省为 object。
x1, y1 可选的。均为单精度值,指示定义 object 左上角的水平(x-轴)和垂直(y-轴)坐标。这些值必须用括号括起。如果省略,则第二组坐标也必须省略。
x2, y2 可选的。均为单精度值,指示定义 object 右下角的水平和垂直坐标。这些值必须用括号括起。如果省略,则第一组坐标也必须省略。
说明
Scale 方法使您能够将坐标系统重置到所选择的任意刻度。Scale 对运行时的图形语句以及控件位置的坐标系统都有影响。
如果使用不带参数的 Scale(两组坐标都省略),坐标系统将重置为缇。
Scale 方法示例
本示例使用 Move 方法设立一个自定义座标系统,使得一个条形图可以在窗体上画出。要检验此示例,可将本例代码粘贴到一个窗体的声明部分,然后按 F5 键并单击该窗体。
Private Sub Form_Click ()
Dim I, OldFontSize ' 声明变量。
Width = 8640: Height = 5760 ' 按缇设置窗体大小。
Move 100,100 ' 移动窗体起点。
AutoRedraw = -1 ' 打开AutoRedraw。
OldFontSize = FontSize ' 保持旧的字体大小。
BackColor = QBColor(7) ' 将背景设置为灰色。
Scale (0, 110)-(130, 0) ' 设定自定义座标系统。
For I = 100 To 10 Step -10
Line (0, I)-(2, I) ' 每隔 10 个单位划尺寸标记。
CurrentY = CurrentY + 1.5 ' 移动光标位置。
Print I ' Print scale mark value on left.
Line (ScaleWidth - 2, I)-(ScaleWidth, I)
CurrentY = CurrentY + 1.5 ' 移动光标位置。
CurrentX = ScaleWidth - 9
Print I ' 将尺寸标记值打印在右边。
Next I
' 画条形图。
Line (10, 0)-(20, 45), RGB(0, 0, 255), BF ' 第一个蓝色条。
Line (20, 0)-(30, 55), RGB(255, 0, 0), BF ' 第一个红色条。
Line (40, 0)-(50, 40), RGB(0, 0, 255), BF
Line (50, 0)-(60, 25), RGB(255, 0, 0), BF
Line (70, 0)-(80, 35), RGB(0, 0, 255), BF
Line (80, 0)-(90, 60), RGB(255, 0, 0), BF
Line (100, 0)-(110, 75), RGB(0, 0, 255), BF
Line (110, 0)-(120, 90), RGB(255, 0, 0), BF
CurrentX = 18: CurrentY = 100 ' 移动光标位置。
FontSize = 14 ' 放大标题尺寸。
Print "Widget Quarterly Sales" ' 打印标题。
FontSize = OldFontSize ' 还原字体大小。
CurrentX = 27: CurrentY = 93 ' 移动光标位置。
Print "Planned Vs. Actual" ' 打印子标题。
Line (29, 86)-(34, 88), RGB(0, 0, 255), BF ' 打印图例。
Line (43, 86)-(49, 88), RGB(255, 0, 0), BF
End Sub
--------------------编程问答-------------------- 谢谢指教
补充:VB , 基础类