Тема: VBScript: Как снизить нагрузку, создаваемую сценарием?
Есть такой пример кода на VBScript:
Option Explicit
dim oWord, oDoc, oSel, i, MyText
Set oWord = CreateObject("Word.Application")
Set oDoc = oWord.Documents
oDoc.Add()
oWord.Visible = True
dim radian, pi, deltaangle
PI=4*atn(1)
radian=PI/180
deltaangle=30*radian
dim shpCanvas
Set shpCanvas = oDoc(1).Shapes.AddCanvas(10, 10, 450, 300)
shpCanvas.WrapFormat.Type = 7
dim count
count = 0
Sub Ris(x,y, len, angle)
dim color, xnew, ynew
if len<1 then
Exit Sub
end if
if len<15 then
color = RGB(0, 255, 51)
else
color = RGB(0, 0, 255)
end if
xnew=x+round(len*cos(angle))
ynew=y+round(len*sin(angle))
shpCanvas.CanvasItems.AddLine x,y,xnew,ynew
count = count + 1
shpCanvas.CanvasItems(count).Line.ForeColor.RGB = color
Call Ris(xnew, ynew, len*0.65, angle-deltaangle)
Call Ris(xnew, ynew, len*0.65, angle+deltaangle)
End Sub
Call Ris(50,280,80,-40*radian)
После запуска сценария создается новый документ Word, и в нем посредством классов объектной модели Рисуется дерево Пифагора (фракталы). Все работает через рекурсию.
Проблема в том, что при рисовании создается сильная нагрузка на процессор, да и сам процесс рисования слишком долго происходит. Как можно решить данную проблему?

