用vb画图的疑问啊?
我现在有一个数组,里面有很多数据,现在我要把这些数据画到picturebox上,请问该怎么画呢?谢谢!
[解决办法]
picture1.pset 这个方法即可以了。
PSet 方法
将对象上的点设置为指定颜色。
语法
object.PSet [Step] (x, y), [color]
PSet 方法的语法有如下对象限定符和部分:
部分 描述
object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。
Step 可选的。关键字,指定相对于由 CurrentX 和 CurrentY 属性提供的当前图形位置的坐标。
(x, y) 必需的。 Single (单精度浮点数),被设置点的水平( x 轴)和垂直( y 轴)坐标。
color 可选的。Long (长整型数),为该点指定的 RGB 颜色。如果它被省略,则使用当前的 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。
说明
所画点的尺寸取决于 DrawWidth 属性值。当 DrawWidth 为 1,PSet 将一个像素的点设置为指定颜色。当 DrawWidth 大于 1,则点的中心位于指定坐标。
画点的方法取决于 DrawMode 和 DrawStyle 属性值。
执行 PSet 时,CurrentX 和 CurrentY 属性被设置为参数指定的点。
想用 PSet 方法清除单一像素,规定该像素的坐标,并用 BackColor 属性设置作为 color 参数。
这个方法不能用在 Withnd With 语句块中。
[解决办法]
以下代码是在数组被赋值后的画线代码,其中每个线条达叉或画三角等来区分:
Picture1.DrawStyle = 0
For j = 0 To zsl - 2
If Int(j / 40) - j / 40 = 0 Then
Picture1.DrawWidth = 1 ' = dash
Picture1.Line (j * 10.8 + 470, quexian(6, j) * -150 + 7900)-(j * 10.8 + 530, quexian(6, j) * -150 + 7900), vbGreen ', BF
Picture1.Line (j * 10.8 + 500, quexian(6, j) * -150 + 7935)-(j * 10.8 + 500, quexian(6, j) * -150 + 7865), vbGreen ', BF
Picture1.Line (j * 10.8 + 470, quexian(7, j) * -150 + 7935)-(j * 10.8 + 470, quexian(7, j) * -150 + 7865), vbBlue ', BF
Picture1.Line (j * 10.8 + 470, quexian(7, j) * -150 + 7935)-(j * 10.8 + 530, quexian(7, j) * -150 + 7935), vbBlue ', BF
Picture1.Line (j * 10.8 + 530, quexian(7, j) * -150 + 7935)-(j * 10.8 + 530, quexian(7, j) * -150 + 7865), vbBlue ', BF
Picture1.Line (j * 10.8 + 470, quexian(7, j) * -150 + 7865)-(j * 10.8 + 530, quexian(7, j) * -150 + 7865), vbBlue ', BF
Picture1.DrawWidth = 2 ' = dash
Picture1.Line (j * 10.8 + 475, quexian(4, j) * -150 + 7930)-(j * 10.8 + 525, quexian(4, j) * -150 + 7870), vbBlack
Picture1.Line (j * 10.8 + 475, quexian(4, j) * -150 + 7870)-(j * 10.8 + 525, quexian(4, j) * -150 + 7930), vbBlack
Picture1.DrawWidth = 1 ' = dash
Picture1.Line (j * 10.8 + 500, quexian(3, j) * -150 + 7865)-(j * 10.8 + 469, quexian(3, j) * -150 + 7917), vbCyan ', BF
Picture1.Line (j * 10.8 + 500, quexian(3, j) * -150 + 7865)-(j * 10.8 + 531, quexian(3, j) * -150 + 7917), vbCyan ', BF
Picture1.Line (j * 10.8 + 469, quexian(3, j) * -150 + 7917)-(j * 10.8 + 531, quexian(3, j) * -150 + 7917), vbCyan ', BF
Picture1.DrawWidth = 1 ' = dash
Picture1.Line (j * 10.8 + 490, quexian(2, j) * -150 + 7880)-((j + 1) * 10.8 + 510, quexian(2, j + 1) * -150 + 7920), vbRed, BF
Picture1.DrawWidth = 1 ' = dash
'Picture1.Circle (j * 10.8 + 500, quexian(6, j) * -150 + 7900), 30, vbGreen
Picture1.Circle (j * 10.8 + 500, quexian(5, j) * -150 + 7900), 35, vbMagenta '-((j + 1) * 10.8 + 500, quexian(6, j + 1) * -150 + 7900), vbGreen ', BF
Else
Picture1.DrawWidth = 1 ' = dash
Picture1.Line (j * 10.8 + 500, quexian(2, j) * -150 + 7900)-((j + 1) * 10.8 + 500, quexian(2, j + 1) * -150 + 7900), vbRed ', BF
Picture1.Line (j * 10.8 + 500, quexian(3, j) * -150 + 7900)-((j + 1) * 10.8 + 500, quexian(3, j + 1) * -150 + 7900), vbCyan ', BF
Picture1.Line (j * 10.8 + 500, quexian(4, j) * -150 + 7900)-((j + 1) * 10.8 + 500, quexian(4, j + 1) * -150 + 7900), vbBlack ', BF
Picture1.Line (j * 10.8 + 500, quexian(5, j) * -150 + 7900)-((j + 1) * 10.8 + 500, quexian(5, j + 1) * -150 + 7900), vbMagenta ', BF
Picture1.Line (j * 10.8 + 500, quexian(6, j) * -150 + 7900)-((j + 1) * 10.8 + 500, quexian(6, j + 1) * -150 + 7900), vbGreen ', BF
Picture1.Line (j * 10.8 + 500, quexian(7, j) * -150 + 7900)-((j + 1) * 10.8 + 500, quexian(7, j + 1) * -150 + 7900), vbBlue ', BF
End If
Next