DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions spécifiques Mobile / Fonctions Capteur
  • Conditions d'utilisation
  • Orientation d'un appareil : définitions
  • Arrêt de la détection
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
CapteurDétecteChangementOrientation (Fonction)
En anglais : SensorDetectChangeOrientation
Permet d'être notifié lors du changement d'orientation de l'appareil sur n'importe lequel de ses 3 axes.
Exemple
// Détection des changements d'orientation sur plusieurs axes
CapteurDétecteChangementOrientation(DetectionOrientation, cptAzimut + cptPitch + cptRoll)
// Procédure appelée par la fonction CapteurDétecteChangementOrientation
PROCÉDURE DetectionOrientation(nAzimut est un entier, nPitch est un entier, nRoll est un entier)
SI nAzimut = 0 OU nAzimut = 360 ALORS
ToastAffiche("L'appareil est orienté vers le Nord.")
FIN
 
// Arrêt de la détection des changements d'orientation :
CapteurTermine()
Syntaxe
<Résultat> = CapteurDétecteChangementOrientation(<Procédure WLangage> [, <Orientation> [, <Fréquence> [, <Seuil>]]])
<Résultat> : Booléen
  • Vrai si la détection a pu être déclenchée,
  • Faux dans le cas contraire.
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage (également nommée "callback") appelée lorsque l'appareil change d'orientation. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure> (<Azimut>, <Pitch>, <Roll>)
où :
  • <Azimut> est un entier correspondant à l'angle entre la direction du Nord magnétique et la direction de l'axe longitudinal (Y) de l'appareil,
  • <Pitch> est un entier correspondant à l'angle de rotation de l'appareil autour de l'axe horizontal (X)
  • <Roll> est un entier correspondant à l'angle de rotation de l'appareil autour de l'axe longitudinal (Y).
Les paramètres de cette procédure sont optionnels. Il n'est pas nécessaire de passer des paramètres à cette procédure. En effet, ces paramètres sont renseignés automatiquement à chaque appel à condition que le type d'orientation correspondant soit spécifié dans le paramètre <Orientation>. Dans le cas contraire, ces paramètres valent 0.
Si le nom de la procédure correspond à une chaîne vide (""), les notifications de changement d'orientation correspondant au paramètre <Orientation> ne seront plus envoyées.
<Orientation> : Constante ou combinaison de constantes optionnelle de type Entier
Type de changement d'orientation devant être notifié :
cptAzimutNotification lors du changement d'orientation autour de l'axe vertical (Z).
cptPitchNotification lors du changement d'orientation autour de l'axe horizontal (X).
cptRollNotification lors du changement d'orientation autour de l'axe longitudinal (Y).

Par défaut, une notification sera envoyée lors du changement d'orientation sur n'importe lequel des trois axes (équivalent à cptAzimut + cptPitch + cptRoll).
<Fréquence> : Constante optionnelle de type Entier
Fréquence à laquelle les notifications de changements d'orientation doivent être envoyées :
cptFréquenceJeuFréquence de notification nécessaire lors de l'utilisation de la fonction CapteurDétecteChangementOrientation dans un jeu.
cptFréquenceNormal
(Valeur par défaut)
Fréquence de notification moyenne.
cptFréquenceRapideFréquence de notification la plus rapide.

iPhone/iPad Ce paramètre n'est pas pris en compte. La fréquence est identique, quelle que soit la constante spécifiée.
<Seuil> : Entier optionnel
Seuil de tolérance au changement (en degrés). Les notifications seront envoyées uniquement pour des changements d'orientation supérieurs à ce seuil.
Si ce paramètre n'est pas spécifié, aucun seuil de tolérance ne sera fixé : les notifications seront envoyées pour chaque changement d'orientation (équivalent à un seuil de 0).
Remarques

Conditions d'utilisation

  • Cette fonction ne peut pas être utilisée dans l'émulateur ou le simulateur. Dans ces deux cas, le résultat de la fonction correspondra toujours à Faux.
  • La détection des changements d'orientation utilise le capteur de type accéléromètre de l'appareil. Si un tel capteur n'est pas présent sur l'appareil, la détection des changements d'orientation n'est pas possible. La sensibilité de la détection dépend de la qualité du capteur présent dans l'appareil.
  • Seul le dernier appel à la fonction CapteurDétecteChangementOrientation est pris en compte. En effet, il ne peut y avoir qu'une seule détection à la fois. Pour effectuer une détection sur plusieurs axes, il faut combiner les orientations.

Orientation d'un appareil : définitions

Le changement d'orientation peut être rapporté dans les trois dimensions suivantes :
  • Azimut : Direction de l'appareil par rapport au Nord magnétique autour de l'axe vertical (Z). Cette direction est exprimée en degrés (de 0 à 360 degrés). Dans ce cas, 0 ou 360 correspond au Nord, 90 correspond à l'Est, 180 correspond au Sud et 270 correspond à l'Ouest.
  • Pitch : Rotation de l'appareil autour de l'axe horizontal (X). Cette rotation est exprimée en degrés (de -180 à 180). Sa valeur est de 0 degré lorsque l'appareil est à plat sur le dos avec l'écran pointant vers le plafond, -90 degrés lorsque l'appareil est debout avec le haut de l'appareil pointant vers le plafond, 90 degrés lorsque l'appareil est debout avec le haut de l'appareil pointant vers le sol et -180/180 degrés lorsque l'appareil est à plat avec l'écran en direction du sol.
  • Roll : Rotation de l'appareil autour de l'axe longitudinal (Y). Cette rotation est exprimée en degrés (de -90 à 90). Sa valeur est de 0 degré lorsque l'appareil est à plat sur le dos avec l'écran pointant vers le plafond, -90 degrés lorsque l'écran est orienté côté gauche et 90 degrés lorsque l'écran est orienté vers la droite.
Origine de l'orientation
Système de coordonnées (en considérant que l'appareil est à plat, l'écran en direction du plafond) :
  • L'origine se situe dans le coin inférieur gauche de l'écran.
  • L'axe des X représente l'axe horizontal et pointe vers la droite de l'écran.
  • L'axe des Y représente l'axe longitudinal et pointe vers le haut de l'écran.
  • L'axe des Z représente l'axe vertical et pointe en dehors de la face avant de l'écran.

Arrêt de la détection

Il est conseillé de stopper la détection des changements d'orientation si elle n'est plus nécessaire afin d'économiser la batterie de l'appareil. Pour cela, le paramètre <Procédure WLangage> doit correspondre à chaîne vide ("").
La fonction CapteurTermine permet d'arrêter toutes les détections en cours.
Liste des exemples associés :
WM Système Exemples multiplateforme (WINDEV Mobile) : WM Système
[ + ] Cette application est un exemple didactique montrant quelques unes des fonctionnalités de WINDEV Mobile pour Android/iOS.
Les fonctions système utilisées sont :
- NFC
- Champ Multimédia
- Luminosité
- Volume
- WIFI
- Bluetooth
- Toast
- Boussole
- Accéléromètre
- Champ caméra
- LED
- Vibrations
- Notifications
- Fonctions de dessin
- Internet
Composante : WDJS.DLL
Voir Aussi
Version minimum requise
  • Version 16
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 22/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale