FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Aujourd'hui à 19:15

» Projet de planétarium virtuel.
par Pedro Alvarez Aujourd'hui à 16:46

» Quantité de mémoire utilisée par un exe
par Jack Aujourd'hui à 16:39

» Problème avec 'file_load'.
par Pedro Alvarez Hier à 8:12

» Version instantanée V 0.9.28i20 du 13/06/2018
par jjn4 Sam 16 Juin 2018 - 14:25

» string$(0,chr$(32)) sans erreur
par silverman Ven 15 Juin 2018 - 19:56

» Version instantanée V 0.9.28i19 du 13/06/2018
par Minibug Ven 15 Juin 2018 - 19:14

» Mes souhaits d'amélioration de Panoramic.
par Pedro Alvarez Jeu 14 Juin 2018 - 20:17

» [RÉSOLU] Message d'erreur impossible à indentifier
par Minibug Mer 13 Juin 2018 - 20:52

» Cadre pour image
par Jean Claude Mar 12 Juin 2018 - 16:31

» Créateur d'objets Panoramic
par Minibug Mar 12 Juin 2018 - 14:02

» Planétarium gratuit.
par Jean Claude Sam 9 Juin 2018 - 18:50

» Comment afficher une image sans fond.
par JL35 Sam 9 Juin 2018 - 14:16

» image_width(n) et image_height(n)
par silverman Sam 9 Juin 2018 - 11:22

» Site sur la programmation sympa
par Jean Claude Jeu 7 Juin 2018 - 11:20

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2018
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 KGF_dll - nouvelles versions

Aller en bas 
Aller à la page : Précédent  1 ... 16 ... 27, 28, 29
AuteurMessage
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 15 Avr 2018 - 18:44

J'ai placé un KGF.dll modifié dans le WenDav dossier DLLs ainsi que sur les deux sitess. Pour le moment, le numéro de version ne change pas, ni la documentation.

Mais il y a 12 nouvelles fonctions ! Voici une doc "raccourcie":

IconListBox:
Attributs de texte par défaut:
res% = dll_call3("SetDefaultFontOfIconListBox",ILB%,adr(nom$),siz%)
res% = dll_call4("SetDefaultFontColorOfIconListBox",ILB%,R%,G%,B%)
res% = dll_call5("SetDefaultFontAttributesOfIconListBox",ILB%,B%,I%,U%,S%)

Attributs de texte par ligne:
res% = dll_call4("SetItemFontInIconListBox",ILB%,item%,adr(nom$),siz%)
res% = dll_call5("SetItemFontColor"InIconListBox,ILB%,item%,,R%,G%,B%)
res% = dll_call6("SetItemFontAttributesInIconListBox",ILB%,item%,B%,I%,U%,S%)


IconComboBox:
Attributs de texte par défaut:
res% = dll_call3("SetDefaultFontOfIconComboBox",ICB%,adr(nom$),siz%)
res% = dll_call4("SetDefaultFontColorOfIconComboBox",ICB%,R%,G%,B%)
res% = dll_call5("SetDefaultFontAttributesOfIconComboBox",ICB%,B%,I%,U%,S%)

Attributs de texte par ligne:
res% = dll_call4("SetItemFontInIconComboBox",ICB%,item%,adr(nom$),siz%)
res% = dll_call5("SetItemFontColor"InIconComboBox,ICB,%item%,R%,G%,B%)
res% = dll_call6("SetItemFontAttributesInIconComboBox",ICB,%,item%,B%,I%,U%,S%)


Cela concerne donc spécifiquement les objets IconListBox et IconComboBox. Pour chacun de ces objets, j'ai créé la notion d'attributs de texte comprenant le nom, la taille et la couleur de la police ainsi que les attributs gras, italique, souligné et barré. Pour chacun de ces objets, il y a des attributs de texte "par défaut", idéalement paramétrés avant l'ajout de la première ligne dans ces objets. Automatiquement, toutes les lignes ajoutées prendrons ces attributs. Mais chaque ligne a également ses propres attributs de texte, qui sont donc initialement chargées à partir des attributs par défaut. On peut ensuite changer spécifiquement les attributs pour une ligne ou une autre, sans que cela affecte les attributs des autres lignes.

Proposition pour Minibug:
Essaie de "jouer" avec ces fonctions pour voir si cela correspond à tes besoins.


Dernière édition par Klaus le Dim 15 Avr 2018 - 23:59, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2963
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 15 Avr 2018 - 21:01

Merci klaus. Je vais tester tout ça ce soir. Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Minibug

avatar

Nombre de messages : 2963
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 15 Avr 2018 - 21:42

Klaus j'ai un message d'erreur : expression arithmétique incorrecte avec SetDefaultFontOfIconListBox

Code:
     IL%=DLL_CALL2("CreateImageList",15,15)
      t$=chemin$+"\ilb\explo.ilb"
      res%=DLL_CALL2("LoadImageList",IL%,adr(t$))

      res%=dll_call1("SetMainFormHandle",handle(0))
      tree1%=DLL_CALL3("CreateIconListBox",handle(PAN_explo%),IL%,1)

      res%=DLL_CALL3("SetDefaultFontOfIconListBox",tree1%,ADR("Segoe UI"),10)

      res%=DLL_CALL5("LocateIconListBox",tree1%,5,45,355,(HEIGHT_CLIENT(PAN_explo%)-50))

Au passage tu as fais une petite erreur dans ton listing au dessus :

res% = dll_call4("SetDefaultFontOfIconListBox",ILB%,adr(nom$),siz%)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 15 Avr 2018 - 23:58

Code:
      res%=DLL_CALL3("SetDefaultFontOfIconListBox",tree1%,ADR("Segoe UI"),10)
Depuis quand peut-on coder comme cela ? Il faut faire ceci:
Code:
      dim police$
      police$ = "Segoe UI"
      res%=DLL_CALL3("SetDefaultFontOfIconListBox",tree1%,ADR(police$),10)

Citation :
Au passage tu as fais une petite erreur dans ton listing au dessus :

res% = dll_call4("SetDefaultFontOfIconListBox",ILB%,adr(nom$),siz%)
Parfaitement exact ! Je corrige.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2963
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 16 Avr 2018 - 0:13

Klaus a écrit:
Depuis quand peut-on coder comme cela ?

euhhh, bin depuis aujourd'hui ! non ? Suspect
Bon, ok je sort... Wink Wink Wink

Désolé Klaus, je ne suis pas très attentif en ce moment...
Je cumule des erreurs et les bévues... drunken

Pour trouver la solution, j'ai tenté plusieurs choses mais pas celle-ci bien sûr ! geek

PS : J'ai testé et ça fonctionne correctement je reprendrai tout ça demain soir.

Bonne nuit ! Sleep Sleep Sleep
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 26 Mai 2018 - 16:37

J'ai ajouté une fonction à KGF.dll, sans pour autant changer de version ni de documentation, pour le moment. La fonction est:
Code:
dim res%, vect(2), fact(2)
res% = dll_call3("Calculate3D",act%,adr(vect),adr(fact))
Elle effectue les calculs matriciels nécessaires pour faire des transformations 3D sur des coordonnées, vecteurs etc. Le code act% donne le code de l'opération à effectuer:
Code:
'   act%=1  translation           fact(0)..fact(2) contiennent les deltas
'   act%=2  changement de taille  fact(0)..fact(2) contiennent les facteurs
'   act%=3  rotation              fact(0)..fact(2) contiennent les angles

Voici une démo:
Code:
' Manipulations_de_vecteurs_3D.bas
'
' Matrice générale de manupulation:
'   vecteur homogène   matrice de transformation    vecteur local
'         | Xhom |     | M11  M12  M13  T14  |       | Xloc |
'         | Yhom |     | M21  M22  M23  T24  |       | Yloc |
'         | Zhom | <=  | M31  M32  M33  T34  |   *   | Zloc |
'         | Whom |     |  0    0    0    1   |       |   1  |
'
' Les deltas de translation sont données par la quatrième colonne T14, T24 et T34,
' avec la diagonale à 1:
'   dX=T14  dY=T24  dZ=T34
'
' Les agrandissements/rétrécissements sont données par la diaginale M11, M22 et M33,
' avec les autres éléments à zéro:
'   dX=M11  dY=M22  dZ=M33 1=M44
'
' La rotation autour de l'axe X est faite par la matrice suivante:
'         |  1      0        0     0   |
'         |  0  cos(µ)   -sin(µ)   0   |
'         |  0  sin(µ)    cos(µ)   0   |
'         |  0      0        0     1   |    
'
' La rotation autour de l'axe Y est faite par la matrice suivante:
'         | cos(µ)  0     sin(µ)   0   |
'         |  0      1        0     0   |
'         |  0 -sin(µ)    cos(µ)   0   |
'         |  0      0        0     1   |    
'
' La rotation autour de l'axe Z est faite par la matrice suivante:
'         | cos(µ)  -sin(µ)  0     0   |
'         | sin(µ)   cos(µ)  0     0   |
'         |  0      0        1     0   |
'         |  0      0        0     1   |    
'
'
' Après une transformation, les nouvelles coordonnées locales se calculent
' à partir des coordonnées homogènes en divisant chaque coordonnée par Whom;

'         | Xloc |     | Xhom / Whom  |
'         | Yloc |     | Yhom / Whom  |
'         | Zloc | <=  | Zhom / Whom  |
'         |   1  |     | Whom / Whom  |
'
'
' La fonction suivante de KGF.dll effectue ces opérations:
'   dim vect(2) : ' vecteur à tranformer
'   dim fact(2)   ' paramètres en fonction de act%
'   res% = dll_call3("Calculate3D",act%,adr(vect),adr(fact))
' avec
'   act%=1  translation           fact(0)..fact(2) contiennent les deltas
'   act%=2  changement de taille  fact(0)..fact(2) contiennent les facteurs
'   act%=3  rotation              fact(0)..fact(2) contiennent les angles

dim res%, vect(2), fact(2), n%, t1, t2
dll_on "KGF.dll"

' translation selon les 3 axes
vect(0) = 5
vect(1) = 3
vect(2) = 7

fact(0) = 2
fact(1) = 1
fact(2) = 3

res% = dll_call3("Calculate3D",1,adr(vect),adr(fact))
' résultat attendu: (7,4,10)
message str$(res%)+": "+str$(vect(0))+","+str$(vect(1))+","+str$(vect(2))

' aggrandissement selon les 3 axes
vect(0) = 5
vect(1) = 3
vect(2) = 7

fact(0) = 2
fact(1) = 1
fact(2) = 3

res% = dll_call3("Calculate3D",2,adr(vect),adr(fact))
' résultat attendu: (10,3,21)
message str$(res%)+": "+str$(vect(0))+","+str$(vect(1))+","+str$(vect(2))

' rotation autour le l'axe X
vect(0) = 0
vect(1) = 0
vect(2) = 7

fact(0) = 0
fact(1) = 90
fact(2) = 0

res% = dll_call3("Calculate3D",3,adr(vect),adr(fact))
' résultat attendu: (-7,0,0)
message str$(res%)+": "+str$(vect(0))+","+str$(vect(1))+","+str$(vect(2))

' test de performance avec les rotations enchaînées autour des 3 axes
vect(0) = 0
vect(1) = 0
vect(2) = 7

fact(0) = 30
fact(1) = 90
fact(2) = 60

t1 = number_ticks
for n%=1 to 10000
  res% = dll_call3("Calculate3D",3,adr(vect),adr(fact))
next n%
t2 = number_ticks
message "Durée pour 10000 appels: "+str$(t2-t1)+" ms   donc 1 appel: "+str$((t2-t1)/10000)+" ms   soit "+str$((t2-t1)/30000)+" ms par rotation "
end

A la fin du programme, il y a une (petite) attente, car il fait une boucle de 10000 appels avec 3 rotations enchaînées (30000 rotations). Le résultat est excellent:

57 micro-secondes par rotation, qui dit mieux ?

Pour chacune des 3 actions possibles, on peut donner jusqu'à 3 paramètres de transformation dans le tableau fact(). Les coordonnées de fact et vect sont affectées comme suiit:  0=X, 1=Y, 2=Z. Pour la rotation, les valeurs sont données en degrés (0..359 degrés, avec des décimales possibles (valeurs flottantes).

Je sais que Papydall a fourni des procédures 100 % Panoramic pour faire cela. Voici un exemple à l'aide de KGF.dll, pour ceux qui de toutes façons utilisent KGF.dll. L'avantage, c'est la fulgurante rapidité d'exécution.

EDIT

Cette fonction est parfaitement utilisable en environnement 2D - il suffit de laisser la 3ème coordonnée à zéro, dans les tableaux vect et fact, sauf pour la rotation (act%=3) où il n'y a que la rotation autour de l'axe Z: fact(2).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 26 Mai 2018 - 22:46

57 micro-secondes par rotation 3D, qui dit mieux ?
Pour moi, c'est un résultat brillant. C'est compatible avec des manipulations en temps réel.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2963
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 26 Mai 2018 - 23:01

Je ne maîtrise pas du tout la 3D ! Dommage, car cela semble rudement intéressant et rapide... drunken
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Marc

avatar

Nombre de messages : 793
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 26 Mai 2018 - 23:30

Klaus a écrit:
57 micro-secondes par rotation, qui dit mieux ?

Euuuh... MOI !  Laughing 20µS !



Merci et bravo Klaus !
Je suis en apprentissage 1ère année section 3D Laughing
Je fais mes débuts en 3D et voilà qui pourra m'intéresser !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 26 Mai 2018 - 23:45

Citation :
Euuuh... MOI ! Laughing 20µS !
Tu m'intéresses ! Comment fais-tu ? En quel langage ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Marc

avatar

Nombre de messages : 793
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 26 Mai 2018 - 23:50

Klaus a écrit:
Tu m'intéresses ! Comment fais-tu ? En quel langage ?

Désolé pour ce quiproquo... c'est avec ton programme et ta DLL mais avec un ordinateur puissant.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 27 Mai 2018 - 0:13

Ah, je comprends mieux ! Merci pour cette précision !

20 micro-secondes, c'est en effet époustouflant !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: KGF_dll - nouvelles versions   

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 29 sur 29Aller à la page : Précédent  1 ... 16 ... 27, 28, 29
 Sujets similaires
-
» Nouvelles versions de TC et TP
» Deux nouvelles versions de la Porsche 911 (type 991)
» Dacia : La Success Story Continue Avec Quatre Nouvelles Versions Et Séries Limitées
» désolé de nepas donner de mes nouvelles
» 2 versions de mapsource sur PC?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: