VBS脚本调用WIA.Vector对象绘制位图

非 Y 不嫁゛ 提交于 2019-12-06 06:57:23

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!