croixCurseur()

Dessine une croix fugitive

 

Exemples d'utilisation

croixCurseur(DEMI_LARGEUR, DEMI_HAUTEUR); // Trace fugitivement une croix au centre
if (isTouch()) croixCurseur(getTouchX(),getTouchY()); // Trace une croix fugitive là où le stylet appuie

 

Référence

void croixCurseur(int x, int y);

Paramètre passé

x,y: coordonnés du centre de la croix

Valeur retournée

Aucune

 

Voir aussi

- hLine(); Trace une ligne horizontale
- vLine(); Trace une ligne verticale
- line(); Trace une ligne
- setLimites(); Limite la zone de dessin
- setDrawInverse(); Choix du mode dessin ou inversion

 

Notes

Cette fonction dessine une croix qui reste affichée 0,1s puis l'efface. Cela permet de l'utiliser pour modéliser le curseur graphique, suivre le touchPad...

N'est dessiné que la partie qui tient dans l'écran et qui tient dans les limites données par la fonction setLimites()

Pour pouvoir dessiner la croix et l'effacer, elle est dessinée en mode inversion de couleur. Il n'est donc pas possible de choisir la couleur de la croix.

 

Exemple

PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-700-croixCurseur\Exemple-700-croixCurseur.ino (dans votre fichier téléchargé):

// Une croix est dessinée comme si elle suivait le stylet avec une trajectoire quelconque
// si on ne fait rien, sinon, elle suit le stylet

#
  $menu = ":PG";
  include <PecheuxGraph_ILI9341_8bits.h>

void setup()
{
  setGraphMode(PAYSAGE); // Initialisation

  // Trace quelques objets
  text("Suivez la croix avec le stylet");
  fillCircle(100,100,50,RED);
  fillRect(160,160,300,300,BLUE);
}

float angle; // Pour avoir une trajectoire intéressante
int x,y; // Coordonnés d'un point de la trajectoire
long temps; // Permet de revenir au mode auto au bout de 3s
void loop()
{

  if (isTouch())
  {
    temps=millis(); // On note le dernier instant du contact
    croixCurseur(getTouchX(),getTouchY()); // Suivi du stylet
  }
  else // Pas de point de contact
    if (millis()-temps>3000L) // Et attente dépassée
    {
      // Calcul d'une trajectoire bizarre
      angle+=0.02; 
      x=DEMI_LARGEUR+trunc(60*cos(angle*6)+59*cos(angle*17));
      y=DEMI_HAUTEUR+trunc(60*sin(angle*15)+59*sin(angle*17));
      croixCurseur(x,y); // Suivi de la trajectoire
    }
}

Résultat:

 

Côté technique

La croix est dessinée grâce aux fonctions hLine() et vLine(), en mode inversion, et avec sauvegarde du contexte du mode. C'est un dessin assez simple à faire. Si on ne l'utilise pas, le compilateur l'éjecte et cela ne prend pas de place mémoire.