Добрый день!
На основе GraphGDIPlus.au3 из массива построен некий график (например, синусоиды):
Скорость обработки и вывода графика не выдерживает ни какой критики.
Пытался прикрутить к нему структуру и Bitmap, да руки коротки... Бьюсь уже несколько дней. ничего не выходит.
Помогите, пожалуйста, разобраться с этой темой и таки построить суперскоростной болид.
На основе GraphGDIPlus.au3 из массива построен некий график (например, синусоиды):
Код:
#include "GraphGDIPlus.au3"
$GUI = GUICreate("График",650,340)
Dim $arrGraph[10000][2]
For $i = 0 To UBound($arrGraph) - 1
$arrGraph[$i][0] = $i
$arrGraph[$i][1] = 600 * Sin($arrGraph[$i][0] / 200)
Next
$Graph = _GraphGDIPlus_Create($GUI,45,10,550,250,0xFF000000,0xFFFFFFFF)
_ViewGraph()
GUISetState ()
While 1
$msg = GUIGetMsg()
Select
Case $msg = -3
Exit
EndSelect
WEnd
Func _ViewGraph()
Local $Ymin, $Ymax, $Ymin1, $Ymax1, $ShagY
For $i = 1 To UBound($arrGraph) - 1
If $arrGraph[$i][1] < $Ymin Then
$Ymin = $arrGraph[$i][1]
Else
If $arrGraph[$i][1] > $Ymax Then
$Ymax = $arrGraph[$i][1]
EndIf
EndIf
Next
$Ymin1=$Ymin-100 ; отступы от min/max
$Ymax1=$Ymax+100
$ShagY=($Ymax1-$Ymin1)/10 ; шаг шкалы Y
;----- шкала по оси XY
_GraphGDIPlus_Set_RangeX($Graph,0,UBound($arrGraph),10,1,0)
_GraphGDIPlus_Set_RangeY($Graph,$Ymin1,$Ymax1,10,1)
;----- сетка по оси XY
_GraphGDIPlus_Set_GridX($Graph,UBound($arrGraph)/10,0xFF000000)
_GraphGDIPlus_Set_GridY($Graph,$ShagY,0xFF000000)
_GraphGDIPlus_Set_PenSize($Graph,2) ; тольщина линии графика
_Draw_Graph(0xFF339966) ; цвет графика
_GraphGDIPlus_Refresh($Graph)
EndFunc
Func _Draw_Graph($ColorGr)
_GraphGDIPlus_Set_PenColor($Graph,$ColorGr)
For $i = 0 To UBound($arrGraph) - 1
_GraphGDIPlus_Plot_Line($Graph,$i,$arrGraph[$i][1])
Next
EndFunc
Скорость обработки и вывода графика не выдерживает ни какой критики.
Пытался прикрутить к нему структуру и Bitmap, да руки коротки... Бьюсь уже несколько дней. ничего не выходит.
Помогите, пожалуйста, разобраться с этой темой и таки построить суперскоростной болид.