UDF > GDIPlus > LineBrush >


_GDIPlus_LineBrushCreateFromRectWithAngle

Crée un pinceau à dégradé linéaire à partir d'un rectangle, de deux couleurs limites et d'un angle de direction

#include <GDIPlus.au3>
_GDIPlus_LineBrushCreateFromRectWithAngle ( $tRECTF, $iARGBClr1, $iARGBClr2, $fAngle [, $bIsAngleScalable = True [, $iWrapMode = 0]] )

Paramètres

$tRectF Structure $tagGDIPRECTF qui définit un rectangle dont le coin supérieur gauche du rectangle est le point de début du dégradé et le coin inférieur droit est le point de fin.
$iARGBClr1 Composantes Alpha, Rouge, Vert et Bleu de la couleur de début de la ligne
$iARGBClr2 Composantes Alpha, Rouge, Vert et Bleu de la couleur de fin de la ligne
$fAngle Angle, mesuré en degrés, dans le sens des aiguilles d'une montre, à partir de l'axe x, de la direction du dégradé (voir Remarques)
$bIsAngleScalable [optionnel] Affectez la valeur true afin de spécifier que l'angle est touché par la transformation associée à ce LinearGradientBrush; sinon, false.
$iWrapMode [optionnel] Indique comment un dégradé est disposé en mosaïque lorsqu'il est plus petit que la zone à remplir:
    0 - Dispose le dégradé en mosaïque, sans symétrie
    1 - Retourne le dégradé horizontalement, puis le dispose en mosaïque
    2 - Retourne le dégradé verticalement, puis le dispose en mosaïque
    3 - Retourne le dégradé horizontalement et verticalement, puis le dispose en mosaïque
    4 - Le dégradé n'est pas disposé en mosaïque

Valeur de retour

Succès: Retourne le handle du nouvel objet LinearGradientBrush.
Échec: Retourne 0 et définit @error <> 0, @extended contient le code erreur GPSTATUS ($GPID_ERR*).

Remarques

Si $fIsAngleScalable est True, $iAngle spécifie l'angle de base à partir duquel l'angle de la ligne directionnelle est calculé pour que les lignes isochromatiques (perpendiculaires à la ligne directionnelle) soient parallèles à la deuxième diagonale du rectangle lorsque $iAngle=45°.
Si $fIsAngleScalable est False, $iAngle spécifie l'angle de la ligne directionnelle sans aucune correction. L'angle est mesuré à partir de la partie supérieure du rectangle et doit être en degrés. Le dégradé suit la ligne directionnelle.
Lorsque vous en avez terminé avec l'objet, appelez _GDIPlus_BrushDispose() pour libérer les ressources de l'objet.

En relation

_GDIPlus_BrushDispose

Voir aussi

Consultez GdipCreateLineBrushFromRectWithAngle dans la Librairie MSDN.

Exemple

#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>

Example()

Func Example()
    Local $hGUI, $hGraphic, $hBrush, $tRectF, $hPen, $fAngle

    $hGUI = GUICreate("GDI+", 830, 340)
    GUISetState(@SW_SHOW)

    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    _GDIPlus_GraphicsClear($hGraphic, 0xFFFFFFFF)

    $fAngle = 45

    $tRectF = _GDIPlus_RectFCreate(10, 10, 400, 300)
    $hBrush = _GDIPlus_LineBrushCreateFromRectWithAngle($tRectF, 0xFF000000, 0xFFFFFFFF, $fAngle, False)
    _GDIPlus_LineBrushSetSigmaBlend($hBrush, 1)
    _GDIPlus_GraphicsFillRect($hGraphic, 10, 10, 400, 300, $hBrush)

    _GDIPlus_BrushDispose($hBrush)

    $tRectF = _GDIPlus_RectFCreate(420, 10, 400, 300)
    $hBrush = _GDIPlus_LineBrushCreateFromRectWithAngle($tRectF, 0xFF000000, 0xFFFFFFFF, $fAngle, True)
    _GDIPlus_LineBrushSetSigmaBlend($hBrush, 1)
    _GDIPlus_GraphicsFillRect($hGraphic, 420, 10, 400, 300, $hBrush)

    $hPen = _GDIPlus_PenCreate(0x6F00007F, 2)
    $fAngle *= 0.01745
    _GDIPlus_GraphicsDrawLine($hGraphic, 10, 10, 10 + Cos($fAngle) * 300, 10 + Sin($fAngle) * 300, $hPen)
    _GDIPlus_GraphicsDrawString($hGraphic, "$bIsAngleScalable = False", 10, 320)

    $fAngle = ATan((400 / 300) * Tan($fAngle))
    _GDIPlus_GraphicsDrawLine($hGraphic, 420, 10, 420 + Cos($fAngle) * 300, 10 + Sin($fAngle) * 300, $hPen)
    _GDIPlus_GraphicsDrawString($hGraphic, "$bIsAngleScalable = True", 420, 320)

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    ; Nettoie les ressources
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
EndFunc   ;==>Example