D
dreamorder
Гость
Доброго времени суток гос-да .
Продолжая осваивать Autoit столкнулся с новой задачей.
для примера:
Проблема в том, что в функцию Line() нужно будет впихнуть 12 000 координат :stars:
Возможно ли как то упростить, сократить или ещё что то ... ?
Я пока ещё плохо знаю массивы и как работать с ini файлами,
но мб с их помощью что то можно придумать?
Заранее благодарю всех откликнувшихся
Продолжая осваивать Autoit столкнулся с новой задачей.
для примера:
Код:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <WinAPIEx.au3>
$Form1 = GUICreate("Form1", 800, 600, 365, 190)
GUISetBkColor(0x000000)
$Button1 = GUICtrlCreateButton("СБРОС",350, 5, 100, 19, $WS_BORDER, $WS_EX_STATICEDGE)
GUICtrlSetCursor (-1, 0)
GUISetState(@SW_SHOW,$Form1)
AdlibRegister('ran',Random(2500,3000))
AdlibRegister('Line', 3000)
Global $iStartX
Global $iStartY
Global $iEndX
Global $iEndY
Global $Per
Global $pPer
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
obnulen()
EndSwitch
WEnd
Func ran()
$pPer = Random(-1, 1, 1)
EndFunc
Func obnulen()
$Per = 0
EndFunc
Func Line()
$Per += $pPer
Select
Case $Per = 4
$iStartX = 33
$iStartY = 555
$iEndX = 338
$iEndY = 555
grss($iStartX, $iStartY, $iEndX, $iEndY)
Case $Per = 3
$iStartX = 33
$iStartY = 55
$iEndX = 738
$iEndY = 55
grss($iStartX, $iStartY, $iEndX, $iEndY)
Case $Per = 2
$iStartX = 33
$iStartY = 277
$iEndX = 738
$iEndY = 277
grss($iStartX, $iStartY, $iEndX, $iEndY)
Case $Per = 1
$iStartX = 33
$iStartY = 173
$iEndX = 738
$iEndY = 173
grss($iStartX, $iStartY, $iEndX, $iEndY)
Case $Per = 0
$iStartX = 33
$iStartY = 111
$iEndX = 738
$iEndY = 111
grss($iStartX, $iStartY, $iEndX, $iEndY)
Case $Per = -1
$iStartX = 33
$iStartY = 333
$iEndX = 738
$iEndY = 333
grss($iStartX, $iStartY, $iEndX, $iEndY)
Case $Per = -2
$iStartX = 33
$iStartY = 231
$iEndX = 738
$iEndY = 231
grss($iStartX, $iStartY, $iEndX, $iEndY)
Case $Per = -3
$iStartX = 33
$iStartY = 155
$iEndX = 738
$iEndY = 155
grss($iStartX, $iStartY, $iEndX, $iEndY)
Case $Per = -4
$iStartX = 33
$iStartY = 432
$iEndX = 738
$iEndY = 432
EndSelect
EndFunc
Func grss($iStartX, $iStartY, $iEndX, $iEndY)
_GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($Form1)
$hPenBlueThin = _GDIPlus_PenCreate(0xFF00ffFF,2) ; перо для синей линии
_GDIPlus_GraphicsDrawLine($hGraphic, $iStartX, $iStartY, $iEndX, $iEndY, $hPenBlueThin) ; линия отрезка
_GDIPlus_PenDispose($hPenBlueThin) ; удаление ресурсов
_GDIPlus_GraphicsDispose($hGraphic) ; удаление ресурсов
_GDIPlus_Shutdown()
EndFunc
Проблема в том, что в функцию Line() нужно будет впихнуть 12 000 координат :stars:
Возможно ли как то упростить, сократить или ещё что то ... ?
Я пока ещё плохо знаю массивы и как работать с ini файлами,
но мб с их помощью что то можно придумать?
Заранее благодарю всех откликнувшихся
