Mars 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | Calendrier |
|
| | Version instantanée du 21 juillet 2010 | |
| | Auteur | Message |
---|
Jack Admin
Nombre de messages : 2381 Date d'inscription : 28/05/2007
| Sujet: Version instantanée du 21 juillet 2010 Mer 21 Juil 2010 - 19:40 | |
| Une version instantanée est la version actuelle du développement de PANORAMIC, elle vous permet d'utiliser les toutes dernières améliorations, sans attendre la sortie de la prochaine version. Une version instantanée n'a pas de procédure d'installation (c'est un fichier zip contenant l'EDITEUR). Pour obtenir la version instantanée du 21 juillet 2010, cliquez sur Télécharger ce fichierVoici les apports de cette version: -------------------------------------------------------------------------------- 1 - Répertoire par défaut: DIR_DIALOG N,D$ : le répertoire D$ devient le répertoire par défaut de l'OPEN_DIALOG ou du SAVE_DIALOG de numéro N 2 - Commandes 3D: 3D_POSITION N,X,Y,Z : positionnement de l'objet 3D numéro N en (X,Y,Z) 3D_ROTATE N,AX,AY,AZ : rotation de l'objet 3D numéro N sur les 3 axes pour prendre les 3 angles Ax,AY,AZ 3D_SCALE N,CX,CY,CZ : mise à l'échelle de l'objet 3D numéro N sur les 3 axes avec les coefficients CX, CY, CZ 3 - Remplissage de surface: 2D_FLOOD X,Y,R,G,B : à partir du point (X,Y), remplit une surface en remplaçant la couleur trouvée au point (X,Y) par la couleur (R,G,B) 4 - traitement avant fermeture d'un FORM: ON_CLOSE N,LABEL : effectue le traitement de l'événement CLOSE pour un FORM 5 - Collisions en 3D: 5.1- Définition des modes de collision pour les objets 3D: 3D_COLLISION_AS_CUBE N : l'objet 3D numéro N effectue des collisions par son cube englobant 3D_COLLISION_AS_POINT N : l'objet 3D numéro N effectue des collisions comme s'il était ponctuel. Il ne peut alors entrer en colision qu'avec des volumes. 3D_COLLISION_AS_FACES N : l'objet 3D numéro N effectue des collisions définies par ses faces 3D_COLLISION_AS_SPHERE N : l'objet 3D numéro N effectue des collisions par sa sphère englobante 3D_COLLISION_AS_ELLIPSOID N : l'objet 3D numéro N effectue des collisions par son ellipsoïde englobant, aligné sur ses axes 5.2 - test de collision: V=O3D_COLLISION(N1,N2) : V vaut 1 si les deux objets 3D de numéro N1 et N2 sont entrés en collision, 0 sinon 6 - Objet GRID: GRID N : création d'un GRID de numéro N. Un GRID prend automatiquement des ascenseurs horizontaux et verticaux. GRID_COLUMN N,V : modification du nombre de colonnes du GRID de numéro N GRID_COLUMN_WIDTH N,V : modification de la largeur des colonnes du GRID de numéro N GRID_COLUMN_FIXED N,V : modification du nombre de colonnes fixes du GRID de numéro N GRID_RAW N,V : modification du nombre de lignes du GRID de numéro N GRID_RAW_HEIGHT N,V : modification de la hauteur des lignes du GRID de numéro N GRID_RAW_FIXED N,V : modification du nombre de lignes fixes du GRID de numéro N GRID_FIXED_COLOR N,R,G,B : définition de la couleur (R,G,B) des parties fixes du GRID de numéro N GRID_WRITE N,L,C,V$ : écriture de V$ dans la case L (ligne) C (colonne) du GRID de numéro N V$=GRID_READ$(N,L,C) : lecture du contenu de la case L (ligne) C (colonne) du GRID de numéro N Remarque: la numérotation des lignes et colonnes commence à 1 7 - Le bug qui empêchait d'utiliser les SOUND (erreur au FILE_LOAD) a été corrigé -------------------------------------------------------------------------------- Exemples: 1 - collision: - Code:
-
label bouge
scene3D 1:full_space 1 3d_sphere 1,0.5 3d_color 1,0,0,0 3d_position 1,-1.5,0,0 3d_collision_as_sphere 1 3d_sphere 2,0.5 3d_color 2,0,0,0 3d_position 2,0.9,0,0 3d_collision_as_sphere 2 timer 2 timer_interval 2,100 timer_on 2 on_timer 2,bouge 3D_point_object 1,2 end bouge: 3d_move 1,0.1 if O3D_collision(1,2)=1 caption 0,"COLLISION" color 1,0,0,0 3d_color 1,255,255,255 3d_color 2,255,255,255 wait 100 color 1,255,255,255 3d_color 1,0,0,0 3d_color 2,0,0,0 timer_off 2 end_if return 2 - remplissage d'un polygone: (cet exemple a été corrigé et fonctionne: des caractères avaient sauté dans un copier/coller) - Code:
-
dim x0,y0,r,Px,Py,Px2,Py2,j%,n%,Pi,a
rem coordonnées du centre x0=100 Y0=100 rem rayon r=50 rem nombre de côtés n%=5 rem angle de début a=10 Pi = 3.1415926535898 Px = r * Cos(a) + x0 Py = r * Sin(a) + y0 rem couleur du contour=violet 2d_pen_color 100,50,200 2d_poly_from Px,Py For j% = 1 To n% Px2 = r*Cos(a + 2*Pi*j%/n%) + x0 Py2 = r*Sin(a + 2*Pi*j%/n%) + y0 2d_poly_to Px2, Py2 Px = Px2 Py = Py2 Next j% rem polygone rempli en violet 2d_flood x0,y0,100,50,200 3 - traitement sur fermeture d'un FORM: - Code:
-
label fermeture
print "cliquez sur l'icone croix" on_close 0,fermeture end fermeture: print "votre traitement ..." print "... par exemple, attendre 3 secondes" caption 0,"attendre 3 secondes" wait 3000 return 4 - utilisation d'un GRID: - Code:
-
grid 1:width 1,400:height 1,300
grid_column 1,8 grid_raw 1,8 grid_write 1,1,1,"Cellule 1,1" grid_write 1,1,2,"Cellule 1,2" grid_write 1,1,3,"Cellule 1,3" grid_write 1,2,1,"Cellule 2,1" grid_write 1,2,2,"Cellule 2,2" grid_write 1,2,3,"Cellule 2,3" grid_write 1,3,1,"Cellule 3,1" grid_write 1,3,2,"Cellule 3,2" grid_write 1,3,3,"Cellule 3,3" caption 0,grid_read$(1,3,2) Edition 1 : Correction dans l'exemple 2D_FLOOD (des caractères + avaient sauté) Edition 2 : la commande 3D_POSITION avait été oubliée, et le test de collision, c'est O3D_POSITION()
Dernière édition par Jack le Jeu 22 Juil 2010 - 14:06, édité 5 fois | |
| | | Klaus
Nombre de messages : 12274 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 21 juillet 2010 Mer 21 Juil 2010 - 21:24 | |
| MERCI ! on_close et grid me seront très utiles. Une petite question: dans une routine on_close, y a-t-il un moyen quelconque de refuser ou annuler la fermeture de la fenêtre ? EDIT J'ai testé on_close, et je constate ceci: 1. on_close fonctionne bien pour intercepter la fermeture d'une fenêtre par la croix rouge, qu'il s'agisse de la form 0 ou d'une autre form qu'on a créée. 2. on_close n'intercepte pas du tout l'effet d'une commande terminate 3. on_close intercepte Alt-F4 sur la fenêtre active. Si la fenêtre active est la form 0, le on_close de la form 0 sera activé, mais toutes les autres fenêtres seont fermées sans activation de leur routine on_close respective 4. avec un click droit sur l'icône du programme dans la barre de tâches, puis click gauche sur "Fermer (Alt-F4)", contrairement à la saisie directe de Alt-F4, la routine on_close de la form 0 est activée même si une autre fenêtre est la fenêtre active, puis tout est fermé sans activation des routines on_close des autres fenêtres 5. En avortant le programme par le gestionnaire des tâches, Windows affiche le message "le programme ne répond plus", puis ferme tout, sans qu'aucune routine on_close ne soit activée Soit dit en passant: on ne peut pas supprimer une form dans sa routine on_close: cela provoque une violation d'accès. Voici mon petit programme de mise en évidence: - Code:
-
' test des routines on_close label fermer_0, fermer_1, fini form 1 on_close 0,fermer_0 on_close 1,fermer_1 button 2 caption 2,"Fermer" on_click 2,fini end fermer_1: message "close 1" return fermer_0: message "close 0" return fini: ' delete 1 : ' cette ligne provoque une violation d'accès terminate
EDIT L'objet grid est superbe, mais il reste de petites choses à voir: 1. la signification des paramètres L et C dans la commande grid_write est intervertie 2. l'évènement on_click fonctionne bien sur les cellules non-fixes du grid, ce qui est bien. Comment peut-on savoir la cellule qui a été cliquée ? 3. l'évènement on_change n'est pas utilisable avec grid Jack, j'espère que tu prends ces commentaires pour ce qu'il sont: une critique constructive de quelqu'un qui reste admiratif du travail que tu fais ! | |
| | | sergeauze
Nombre de messages : 391 Age : 71 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Version instantanée du 21 juillet 2010 Mer 21 Juil 2010 - 22:40 | |
| belle relisation que ce flood fill. ça fait des semaines que je tentais de le faire sans y parvenir . je vais en user et abuser! L'exemple de Jack ne fontionne pas chez moi. j'ai reussi a faire fonctionner celui là - Code:
-
dim x0,y0,r,Px,Py,Px2,Py2,j%,n%,Pi,a rem coordonnées du centre x0=100 Y0=100
rem rayon r=100
rem nombre de côtés n%=10
rem angle de début a=10
Pi = 3.1415926535898
Px = r * Cos(a) + x0 Py = r * Sin(a) + y0
2D_poly_from Px,Py
For j% = 1 To n% Px2 = r*Cos(a + 2*Pi*j%/n%) + x0 Py2 = r*Sin(a + 2*Pi*j%/n%) + y0 2D_poly_to Px2, Py2 Px = Px2 Py = Py2 Next j% 2d_flood x0,y0,100,50,200
Merci bien ajack | |
| | | jjn4
Nombre de messages : 2677 Date d'inscription : 13/09/2009
| Sujet: +++ Jeu 22 Juil 2010 - 2:31 | |
| Fabuleux ! Je testerai tout cela demain, mais ça a l'air a priori de donner des perspectives nouvelles extraordinaires ! Merci Jack ! | |
| | | Invité Invité
| Sujet: Re: Version instantanée du 21 juillet 2010 Jeu 22 Juil 2010 - 8:22 | |
| Je viens de télécharger, et je ne sais plus!
Qui est aujourd'hui Lucky Luke, on a dit que c'était Klaus, JL35 a relevé le défit. Rt maintenant Jack bat tout les records.
Faire autant en si peu, ce n'est même pas dans mes rèves. Certe, il y a des erreurs, et des manques. Je vois par exemple que si on détourne la fermeture de form avec on_click 0, autre, au return, cela ferme. Donc apparemment, en cliquant sur la croix, cela fera le traitement, mais se terminera par la fermeture. C'est un début de remarque, en 10 mn on n'a pas fait tout le tour de la question.
Pour le Grid, si tu fais ensuite la même chose que pour un EDIT ou Alpha pour chaque cellule, alors je laisse mon editeur de cellules et la suite de côté. Comme dit Klaus, il faudrait aussi connaitre la dernière cellule cliquée, ausi cela peut faire par exemple une boite de message avec des choix multiples autre que entre 2 boutons déjà définis.
Mais le travail est énorme, et le présenter alors que ce n'est pas fini, montre les nouvelles possibilités de ce basic. Effectivement la démo de remplissage ne fonctionne pas, on dirait que certains signes ne sont pas passés. J'ai fait l'essai avec un cercle, et ça marche.
A ce propos pour poster une réponse, il y a eu une transformation. J'ai voulu hier rééditer un ancien sujet, et je me suis aperçu outre que \ posait problème, mais en éditant, chaque guillemet était remplacé par \".
Je ne vais pas refaire un post pour ceci, mais si tu lis celui-ci, revoit CHAIN pour qu'il ne bloque pas l'éditeur une fois fini. |
| | | Klaus
Nombre de messages : 12274 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 21 juillet 2010 Jeu 22 Juil 2010 - 9:33 | |
| Quant à la démo de remplissage, Jack a remis son code modifié en ligne - il manquait des signes "+", probablement un problème de transmission. | |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée du 21 juillet 2010 Jeu 22 Juil 2010 - 9:46 | |
| Merci pour ces nouvelles fonctions de PANORAMIC.
ON_CLOSE N en particulier est très intéressant pour moi. Et GRID éveille ma curiosité..
Et grace aux collisions je pense que l'on va voir arriver des petits programmes rigolo.....
Quelques jours, pour tester tout çà... | |
| | | bleunounet
Nombre de messages : 150 Date d'inscription : 26/10/2007
| Sujet: Re: Version instantanée du 21 juillet 2010 Jeu 22 Juil 2010 - 10:47 | |
| cool merci jack | |
| | | jjn4
Nombre de messages : 2677 Date d'inscription : 13/09/2009
| Sujet: +++ Jeu 22 Juil 2010 - 12:49 | |
| J'ai essayé le programme de klaus, il ne crée pas d'access violation chez moi Et j'ai aussi essayé le programme de Sergeauze, le remplissage de pentagone violet marche bien. @Jack : Tout est vraiment extraordinaire, je n'ai pas encore essayé les nouveautés 3d mais le reste est fabuleux. En particulier grid qui ouvre de nouvelles perspectives fabuleuses à ce langage. Par contre, en plus des remarques déjà formulées, je dirais qu'il est dommage qu'il n'y ait pas de possibilité de colorer les cellules non-fixes de façon différenciée et pour les cellules fixes, même si c'est peut-être moins important, ce serait bien aussi de pouvoir les colorer de façon différenciée. (cela permet de faire des tableaux, et plus ils sont colorés, plus ils sont parlants) Et autre chose, avec des possibilités aussi extraordinaires, il manque maintenant de façon importante la possibilité d'imprimer (print_dialog, print_setup...). | |
| | | Invité Invité
| Sujet: Re: Version instantanée du 21 juillet 2010 Jeu 22 Juil 2010 - 13:07 | |
| Bonjour jjn4 Tu verras, Jack arrivera à faire les fonctions d'impression. Même si j'aime pas prendre de risques inutiles (sauf accident), j'en mettrais ma main à couper! |
| | | jjn4
Nombre de messages : 2677 Date d'inscription : 13/09/2009
| Sujet: +++ Jeu 22 Juil 2010 - 13:12 | |
| Ouh, quelle témérité ! | |
| | | jjn4
Nombre de messages : 2677 Date d'inscription : 13/09/2009
| Sujet: +++ Jeu 22 Juil 2010 - 13:27 | |
| Je viens d'essayer l'exemple 3D de Jack : (en dernier, parce que moi et la 3D...) L'exemple marche et est joli, mais il y a 2 trucs que je ne comprends pas : - qu'est-ce que c'est que ce 3d_position qui ne se colore pas en bleu ? c'est donc un mot-clé nouveau, mais il n'est pas dans la liste ci-dessus ! - et qu'est-ce que ce : if 03D_collision(1,2)=1 dans la liste ci-dessus, il y a V=COLLISION(N1,N2) mais pas de 03D_COLLISION ? | |
| | | Jack Admin
Nombre de messages : 2381 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée du 21 juillet 2010 Jeu 22 Juil 2010 - 14:09 | |
| Rien n'échappe aux yeux perçants des panoramiciens: la commande 3D_POSITION avait été oubliée, et le test de collision, c'est O3D_POSITION(). Je viens de corriger le post. | |
| | | jjn4
Nombre de messages : 2677 Date d'inscription : 13/09/2009
| Sujet: +++ Jeu 22 Juil 2010 - 17:43 | |
| Nous avons des yeux de lynx ! Bon, petite question : pourquoi le O devant O3D_COLLISION ? | |
| | | Klaus
Nombre de messages : 12274 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 21 juillet 2010 Jeu 22 Juil 2010 - 22:36 | |
| @jjn4: la violation d'accès a lieu si on tente de supprimer une form. dans mon programme de démo, il faut enlever l'apostrophe devant la ligne indiquée dans le commentaire, puis cliquer sur le bouton "Fermer". Le programme exécute alors "delete 1" pour supprimer la form 1, et là, boum ! Pourtant, il me semblait qu'après un bug ancien corrigé depuis quelque temps, on devrait pouvoir supprimer une form. | |
| | | jjn4
Nombre de messages : 2677 Date d'inscription : 13/09/2009
| Sujet: +++ Ven 23 Juil 2010 - 11:39 | |
| @Klaus: Oui, oui, j'ai bien enlevé l'apostrophe, mais désolé, je n'ai pas d'access violation. Il faut croire que tous les ordi ne sont pas identiques. | |
| | | Klaus
Nombre de messages : 12274 Age : 74 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 21 juillet 2010 Ven 23 Juil 2010 - 12:13 | |
| Tu as raison: il n'y a pas de violation d'accès... Je ne sais pas du tout où j'ai trouvé cela. La commande delete 1 pour supprimer la form marche bien dans la routine on_close. Je suis vraiment désolé pour la fausse alerte.
Ceci dit, les autres remarques sur on_close restent valides ! | |
| | | lagman
Nombre de messages : 205 Age : 31 Localisation : France Date d'inscription : 07/05/2008
| Sujet: Re: Version instantanée du 21 juillet 2010 Sam 24 Juil 2010 - 0:47 | |
| | |
| | | lagman
Nombre de messages : 205 Age : 31 Localisation : France Date d'inscription : 07/05/2008
| Sujet: Re: Version instantanée du 21 juillet 2010 Sam 24 Juil 2010 - 4:07 | |
| Désolé pour le double post , mais quand je veux chainer deux objets 3D j'obtiens une violation d'accès >< | |
| | | Contenu sponsorisé
| Sujet: Re: Version instantanée du 21 juillet 2010 | |
| |
| | | | Version instantanée du 21 juillet 2010 | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |