VBS脚本可以通过调用WIA.Vector对象画图,使用该对象的Add方法可以把vb中的颜色逐个坐标画到位图中。
下面这段代码,是打印方程X(n+1)=cot(X(n)),x(1)=1迭代20次后的图像(坐标有调整,每个小格并不代表单位1)
WScript.Echo "计算X(n+1)=cot(X(n)),x(1)=1 迭代20次"
'沙盘
Dim V(300,300)
'初始值
Dim F
F = 1
'迭代前的初始点
Dim TX, TY
For TX = -3 To 3
For TY = -3 To 3
V(50 + TX, 150 + TY) = 1
Next
Next
WScript.Echo "初始值 " & F
'迭代公式20次
Dim Counter
For Counter = 1 To 20
F = Cos(F) / Sin(F)
WScript.Echo "第 " & Counter & " 次迭代,值为 " & F
'沙盘描点
For TX = -3 To 3
For TY = -3 To 3
V(50 + Counter * 10 + TX, 150 + Eval(F) * 3 + TY) = 1
Next
Next
Next
WScript.Echo "计算完毕"
'创建WIA对象
Set Ve = CreateObject("WIA.Vector")
'绘制图像
Dim X,Y,I,J
For Y = 1 To 300
For X = 1 To 300
'描点
If V(X, Y) = 1 Then
Ve.Add vbRed
'横纵轴
ElseIf X = 50 Or Y = 150 Then
Ve.Add vbBlue
'横纵坐标辅助线
ElseIf X Mod 10 = 0 Or Y Mod 10 = 0 Then
Ve.Add vbBlack
'留白
Else
Ve.Add vbWhite
End If
Next
Next
Ve.ImageFile(300,300).SaveFile "result.bmp"
需要注意的是,在同一个坐标下不要多次调用WIA.Vector的Add方法,否则脚本运行会抛出异常
通过下面的批处理命令(BAT)脚本,可以一键调用上面的VBS脚本。
@ECHO OFF
CSCRIPT test.vbs //NOLOGO
PAUSE
运行截图如下:
绘制出的图像result.bmp如下:
END
来源:oschina
链接:https://my.oschina.net/u/1425762/blog/334973