Why on hell do you want to "draw" into an array? Anyhow, here we go: #include <Array.au3>
Global Const $fPi = ACos(-1), $fD2R = $fPi / 180
Global $aGfxArray[21][21]
DrawEllipseToArray($aGfxArray, 10) ;full ellipse
_ArrayDisplay($aGfxArray, "full ellipse")
Global $aGfxArray[21][21]
DrawEllipseToArray($aGfxArray, 10, 90, 270) ;half ellipse
_ArrayDisplay($aGfxArray, "half ellipse")
Global $aGfxArray[21][21]
DrawEllipseToArray($aGfxArray, 10, 90 - 45, 270 - 45) ;inclinade half ellipse
_ArrayDisplay($aGfxArray, "inclinade half ellipse")
Func DrawEllipseToArray(ByRef $aArray, $iRadius, $iStartAngle = 0, $iEndRadius = 359, $iColor = 0xFF00FF00, $iColor_Center = 0xFFFF0000)
Local $d, $iW2 = Int(UBound($aArray, 2) / 2), $iH2 = Int(UBound($aArray, 1) / 2), $iX, $iY
For $d = $iStartAngle To $iEndRadius
$iX = Round($iW2 + Sin($d * $fD2R) * $iRadius, 0)
$iY = Round($iH2 + Cos($d * $fD2R) * $iRadius, 0)
$aArray[$iY][$iX] = $iColor
Next
$aArray[$iH2][$iW2] = $iColor_Center
EndFunc Pay attention to the function DrawEllipseToArray - it has no error checks!