Librairie graphique pour Air Manager

Programmation LUA, Macros FSUIPC, logiciel LINDA
et codage en LUA des gauges Air Manager

Re: Librairie graphique pour Air Manager

Messagede sikorsky77 » Mar 12 Juil 2016 21:24

salut Jacques

Je suis épaté , tu as super avancé, perso j'ai calé lorsque je me suis intéressé a Open GL lua et la manipulation graphique , il me manque l’essentiel , les bases sur le dessin pour appréhender les concepts , concevoir une méthode et faire les bons choix

on voit l'apport de ton métier derrière ce que tu as fait

Thierry
Avatar de l’utilisateur
sikorsky77
 
Messages: 168
Inscription: 15/11/09
Localisation: 77 Boissy Le Chatel Proche aerodrome Coulommiers Mouroux

Re: Librairie graphique pour Air Manager

Messagede JacquesZ » Mer 13 Juil 2016 07:38

Merci Thierry!

J'ai été étonnamment surpris par la relative facilité à programmer la bibliothèque, cela m'a pris une soirée. Je ne pensais pas pouvoir arriver à ca. L'idée géniale (mais pas de moi) de prendre un objet image d'un pixel pour l'étirer en une ligne de la longueur désirée et de la faire tourner, soumise au détour du forum anglais d'Air Manager à tout déclenché. J'ai sauté sur l'ordi comme la vérole sur le bas Clergé comme dirait l'autre, et ça à marché!

Et Lua est un langage relativement simple, proche de la syntaxe du Pascal ou du C, bien adapté à mes vieux neurones, c'est pas de l'orienté objet genre C++ ou C# (et j'ai rien dit de SIOC, bien qu'il ne soit pas LOO lunettesnoires ). L'avantage est que ça me change les idées de manière efficace, des problèmes perso ayant depuis 4 mois mis mon ATPL entre parenthèses...

On peut maintenant réaliser des instruments qui s'adaptent +/- automatiquement au type d'avion utilisé, en créant par ex. les arcs de vitesse en fonction de variables dans le code, voire même en récupérant ces données directement via Simconnect ou Xplane, qui publient des variables telles que Vs, Vs0, Vs1 et Vne. Quelqu'un du forum anglais à commencé
https://siminnovations.com/forums/viewtopic.php?f=15&t=238&p=1849#p1849

Certes c'est du bricolage, mais l'idée est de créer une dynamique pour que les développeurs d'Air Manager implémentent ce genre de primitives graphiques dans les futures versions d'Air Manager une fois le passage de Java à OpenGL réalisé, ce qui augmentera les FPS.
La prochaine étape est d'arriver à une routine de conversion Lat/Lon en x/y pour pouvoir afficher le plan de vol sur le GPS pour le FMS, ou pour le ND de l'ASPEN qui pour l'instant est en Stdby. Pas simple.

Jacques
Ma chaîne YouTube Tutos sur l’A320 par un Pilote de Ligne: https://youtube.com/channel/UCljftuoKBcgeR-WBgYJpuoA
Avatar de l’utilisateur
JacquesZ
 
Messages: 2848
Inscription: 24/11/10

Re: Librairie graphique pour Air Manager

Messagede jacquesvde » Mer 13 Juil 2016 17:31

Merci pour ton excellent travail grandsoleil merci affiche
j’apprécie le temps que tu passe pour nous aider, je vais faire un bon en avant avec tout tes tuto chouettedoights Cependant j’éprouve encore des difficulté pour la conversion PIXEL et Milimetre furieuxfumée

Par exemple sur Skinman je désir 115 mm quel es la formule pour trouver la valeur en Pixel gratgrat
mes amitiés

Jacques V cligneoeil
Avatar de l’utilisateur
jacquesvde
 
Messages: 1226
Inscription: 20/04/09
Localisation: Courcelles Belgique

Re: Librairie graphique pour Air Manager

Messagede JacquesZ » Mer 13 Juil 2016 18:31

jacquesvde a écrit:Merci pour ton excellent travail grandsoleil merci affiche
j’apprécie le temps que tu passe pour nous aider, je vais faire un bon en avant avec tout tes tuto chouettedoights Cependant j’éprouve encore des difficulté pour la conversion PIXEL et Milimetre furieuxfumée

Par exemple sur Skinman je désir 115 mm quel es la formule pour trouver la valeur en Pixel gratgrat
mes amitiés

Jacques V cligneoeil

Merci Jacques,
comme beaucoup sur ce forum, j'essaie de rendre dans les domaines que je connais un peu, ce que le forum m'apporte dans les nombreux domaines que je ne connais pas!

Pour la conversion pixels/millimètres, il n'y a pas de règle universelle puisque le nombre de pixel est dépendant de la résolution de ton écran.
Tu peux avoir des écrans de 22pouces de diagonale avec des résolutions variant entre 1024 pixels et 1920 pixels voire plus...
Pour une même distance mesurée sur deux écrans de même taille mais de résolution différente, le nombre de pixels sera différent.
On donne la densité d'un écran en dpi(dots per inch) ou en ppp(points par pouce)
En moyenne pour les écrans récents en 1280x1024 on a 96 dpi soit 96 pixels sur une distance de 1 pouce(2,54 cms) ca fait environ 39 pixels par centimètre, mais on peut avoir plus si l'ecran a une résolution plus grande. Je rappelle que Air Manager permet de redimensionner les instruments au niveau de l'affichage, donc ce problème est moins gênant.

Jacques
Ma chaîne YouTube Tutos sur l’A320 par un Pilote de Ligne: https://youtube.com/channel/UCljftuoKBcgeR-WBgYJpuoA
Avatar de l’utilisateur
JacquesZ
 
Messages: 2848
Inscription: 24/11/10

Re: Librairie graphique pour Air Manager

Messagede jacquesvde » Mer 13 Juil 2016 20:21

Merci, Jacques

Non ce n'est pas la dimension d'écrans qui me dérange en pixel, c'est quand je dessine avec Skinman.

J'ai trouver la solution si ça peut aider d'autre. chouettedoights

Formule de conversion cm pixel
1 cm = 37.79527559055 pixel
100 pixel=2.646 cm

Pour convertir une longueur en pixel en cm, on multiplie par 0.02646 ou on divise par 37.7953.

Pour convertir une longueur en cm en pixel , on multiplie par 37.7953 ou on divise par 0.0264 .

Exemple de conversion:
100 pixel = 0.02646 x 100 cm = 2.646 cm
10 cm = 37.7953 x 10 pixel = 377.953 pixel.

http://www.comment-calculer.net/conversion-cm-pixel.php

Jacques V cligneoeil
Avatar de l’utilisateur
jacquesvde
 
Messages: 1226
Inscription: 20/04/09
Localisation: Courcelles Belgique

Re: Librairie graphique pour Air Manager

Messagede JacquesZ » Mer 13 Juil 2016 20:31

37,8 pixels par cm, c'est bien du 96dpi.

Jacques
Ma chaîne YouTube Tutos sur l’A320 par un Pilote de Ligne: https://youtube.com/channel/UCljftuoKBcgeR-WBgYJpuoA
Avatar de l’utilisateur
JacquesZ
 
Messages: 2848
Inscription: 24/11/10

Re: Librairie graphique pour Air Manager

Messagede sikorsky77 » Ven 15 Juil 2016 00:16

Salut Jacques

j'ai vu que tu as fait un dessin style SID , comment calcules-tu le pixel de départ du second leg, puis du troisième, etc..
si on fixe la rosace du ND sur le cap de l'avion avec ta bibliothèque , le premier leg sur le cap de l'avion ne nécessite qu'un calcul de longueur en ratio distance/pixel , puis arrive le deuxième leg qui va disons virer sur la droite de 30 ° sur une certaine distance , au fur et a mesure que l'on s'approche de la fin du leg 1, on va avoir très certainement la nouvelle vision du Leg 3 qui vire à gauche de 130° , la ça devient compliqué de déplacer chaque segment, et je ne parle pas de l'actualisation de l'ensemble des legs pendant le virage qui plus est si on jour avec le range du ND

Je pensais à une autre idée en partant de ce que tu as déjà fait ce qui est déjà beaucoup
en partant de ta méthode , si on arrive à créer avec tes primitives, en lisant le PDV au départ du vol,
A) soit une image.png du PDV complet dans une taille 10 ou 20 fois supérieure à la fenêtre ND de l'Aspen qui permet de
1. pouvoir zoomer le PDV sur différents range
2. de déplacer l'image par rapport au deplacement de l'avion sur le PDV et faire une rotation de l'image en fonction du changement de cap de l'avion dans la fenêtre de l'Aspen
B) soit par exemple de créer 10 fichiers images qui correspondent à 10 range de l'Aspen pour éviter en simultanée les calculs de gestion de l'image et du zoom

restera un souci , le changement de PDV en cours de vol (exemple, un changement de piste à l'arrivée nécessitant une nouvelle STAR qui oblige à la re-fabrication d'une (ou de nouvelle(s) image(s)) en cours de vol
Toi le spécialiste du dessin et des fonctions associées , serait-ce une idée à creuser ?

Thierry

PS : suite à ma remarque sur un changement de PDV il me vient une idée, on peut imaginer trois images pour le PDV (ou 30 suivant la méthode) qui donneraient la possibilité de les recréer indépendamment
une image SID jusqu'au dernier point de la SID (il y a peu de chance que l'on la change à la dernière minute , mais ça peut arriver), une image pour la partie croisière et une image de STAR au départ de l'IAF
on pourrait imaginer par exemple que lorsque que l'on contacte l'ATIS d'arrivée ou le contrôleur APP soit on utilise celle que l'on avait prévue, soit on puisse recalculer l'image de la nouvelle STAR/RW si ça ne correspond pas à celle que l'on avait prévue
Avatar de l’utilisateur
sikorsky77
 
Messages: 168
Inscription: 15/11/09
Localisation: 77 Boissy Le Chatel Proche aerodrome Coulommiers Mouroux

Re: Librairie graphique pour Air Manager

Messagede JacquesZ » Ven 15 Juil 2016 07:09

sikorsky77 a écrit:Salut Jacques

j'ai vu que tu as fait un dessin style SID , comment calcules-tu le pixel de départ du second leg, puis du troisième, etc..
si on fixe la rosace du ND sur le cap de l'avion avec ta bibliothèque , le premier leg sur le cap de l'avion ne nécessite qu'un calcul de longueur en ratio distance/pixel , puis arrive le deuxième leg qui va disons virer sur la droite de 30 ° sur une certaine distance , au fur et a mesure que l'on s'approche de la fin du leg 1, on va avoir très certainement la nouvelle vision du Leg 3 qui vire à gauche de 130° , la ça devient compliqué de déplacer chaque segment, et je ne parle pas de l'actualisation de l'ensemble des legs pendant le virage qui plus est si on jour avec le range du ND

Je pensais à une autre idée en partant de ce que tu as déjà fait ce qui est déjà beaucoup
en partant de ta méthode , si on arrive à créer avec tes primitives, en lisant le PDV au départ du vol,
A) soit une image.png du PDV complet dans une taille 10 ou 20 fois supérieure à la fenêtre ND de l'Aspen qui permet de
1. pouvoir zoomer le PDV sur différents range
2. de déplacer l'image par rapport au deplacement de l'avion sur le PDV et faire une rotation de l'image en fonction du changement de cap de l'avion dans la fenêtre de l'Aspen
B) soit par exemple de créer 10 fichiers images qui correspondent à 10 range de l'Aspen pour éviter en simultanée les calculs de gestion de l'image et du zoom

restera un souci , le changement de PDV en cours de vol (exemple, un changement de piste à l'arrivée nécessitant une nouvelle STAR qui oblige à la re-fabrication d'une (ou de nouvelle(s) image(s)) en cours de vol
Toi le spécialiste du dessin et des fonctions associées , serait-ce une idée à creuser ?

Thierry

PS : suite à ma remarque sur un changement de PDV il me vient une idée, on peut imaginer trois images pour le PDV (ou 30 suivant la méthode) qui donneraient la possibilité de les recréer indépendamment
une image SID jusqu'au dernier point de la SID


Salut Thierry

Si j'ai bien compris, tu suggères de dessiner le plan de vol en entier comme une seule image qu'on ferait tourner/bouger ensuite suivant le cap de l'avion.

C'est une très bonne idée, mais malheureusement ce n'est pas le fonctionnement de la librairie.
Je ne crée pas de fichier png, c'est uniquement du pseudo-vectoriel.
Je dessine une ligne à l'exécution en "étirant" une image colorée d'un pixel seulement selon la longueur/épaisseur voulue, puis en faisant tourner cette image étirée selon l'angle nécessaire, enfin en translatant l'image à ses coordonnées définitives.
Les arcs, cercles sont ensuite entièrement construits à partir de lignes, avec des calculs trigo simples.

L'image d'un PDV que tu as vue est juste un assemblage statique de lignes, d'arcs et de cercles. Mais tu as raison l'idée à la base est bien d'afficher si c'est possible un PDV sur un ND.

Pour ce faire plusieurs étapes, à mon avis:
1- convertir des position GPS en Lat/Lon récupérées via Simconnect en coordonnées x,y en pixels pour pouvoir les afficher sur la Moving Map.
2- créer l'intégralité du PDV en mémoire en lisant l'ensemble du PDV jusqu'au segment final et en stockant toutes les coordonnées dans un grand tableau d'une centaines de points. On associe ensuite à chaque coordonnée GPS (couple Lat/Lon) un couple de coordonnées x,y
3- à partir de là, on pourra afficher le PDV en connectant les points entre eux par des lignes qu'on affichera sur le ND.
4- À chaque mouvement de l'avion, il faudra effacer toutes les lignes déjà dessinées, recalculer l'ensemble du tableau du PDV en mettant à jour les coordonnées x,y de chaque point GPS, puisque si Lat/Lon ne change pas, la position correspondante de chaque point sur la fenêtre de la jauge évolue. Cette mise à jour doit également tenir compte du nouveau cap, on fait tourner alors l'ensemble des points du PDV.
5- on peut ensuite réafficher le PDV dans son intégralité.

Pour un zoom, on recalcule là encore l'intégralité des coordonnées x,y de chaque point en multipliant celles ci d'un facteur de zoom, ce qui va avoir pour effet "d'éloigner" les coordonnées les unes des autres de manière proportionnelle, on redessine ensuite le PDV en connectant les points. Le zoom est automatique.

Je suis persuadé que c'est cette approche vectorielle qui est utilisée dans les vrais ND/GPS.
Si on jouait sur une image ( ce qui n'est pas possible en l'état d'Air Manager) les zooms augmenteraient en même temps la largeur des lignes, ce qui n'est pas souhaitable. L'approche vectorielle évite ce soucis.
Par contre il faut tout recalculer à chaque fois, et surtout dans notre cas c'est je pense le plus gros problème, comme on crée des ressources graphiques à chaque création de ligne, à un moment on va exploser la mémoire VRAM ou celle allouée à Java.
Je ne sais pas s'il existe un processus de récupération automatique des ressources graphiques inutilisées en Lua/C++, une sorte de "garbage collector" mais pour les images, j'en doute...

Tu vois, pas mal de boulot pour autant qu'on franchisse toutes les étapes, et j'en suis au point 1!

En réfléchissant à ton idée, il y aurait peut-être une autre possibilité: un programme externe à Air Manager qui créerait (selon les mêmes principes (vecteurs) une image en png (un peu selon le principe du Postcript, qui affiche une image à partir de vecteurs), image qui serait chargée comme ressource graphique par Air Manager. Mais cela implique un programme externe, une programmation en C/C++, et une librairie de fonctions Postcript ou équivalent adaptée.

Jacques
Ma chaîne YouTube Tutos sur l’A320 par un Pilote de Ligne: https://youtube.com/channel/UCljftuoKBcgeR-WBgYJpuoA
Avatar de l’utilisateur
JacquesZ
 
Messages: 2848
Inscription: 24/11/10

Re: Librairie graphique pour Air Manager

Messagede sikorsky77 » Dim 17 Juil 2016 21:53

pour le zoom , j'avais aussi évoqué dans mon post précédent genre 10/11 images représentant un range pour éviter les distorsions d'images (lignes , escaliers, etc...) sur un zoom d'une seule image
1 nm = 1 image
5 nm = 1 image
10 nm = 1 image
20 nm = 1 image
40 nm = 1 image
80 nm = 1 image
160 nm = 1 image
320 nm = 1 image
640 nm = 1 image
1280 nm = 1 image
2560 nm = 1 image

voir en fait 30 : 10/11 SID , 10/11 Cruze, 10/11 STAR
Avatar de l’utilisateur
sikorsky77
 
Messages: 168
Inscription: 15/11/09
Localisation: 77 Boissy Le Chatel Proche aerodrome Coulommiers Mouroux

Re: Librairie graphique pour Air Manager

Messagede JacquesZ » Lun 18 Juil 2016 00:00

Oui, sauf que là il s'agit de vecteurs (lignes) indèpendants les uns des autres, et pas d'une seule image de type png.
On peut zoomer sur une image existante, ce qui n'est pas le cas ici.

Jacques
Ma chaîne YouTube Tutos sur l’A320 par un Pilote de Ligne: https://youtube.com/channel/UCljftuoKBcgeR-WBgYJpuoA
Avatar de l’utilisateur
JacquesZ
 
Messages: 2848
Inscription: 24/11/10

Précédente

Retourner vers LUA, Linda, Macros & gauges Air Manager





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités