JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Distance entre 2 points de l'écran Lun 7 Aoû 2023 - 19:07 | |
| Sur la totalité de l'écran, affichage des coordonnées d'un point cliqué, et mesure de la distance (en pixels) entre deux points cliqués successivement. C'est facile en utilisant la dll KGF.DLL de l'ami Klaus: - Code:
-
' Coordonnées et distance en pixels entre deux points de l'écran total (cliqués) LABEL Atcl,Term,Clic,Reini DIM x%,y%,x1,y1,x2,y2,d%,r,a$ BORDER_SMALL 0: WIDTH 0,200: HEIGHT 0,100: FONT_SIZE 0,10: COLOR 0,255,255,230 CAPTION 0," - DISTANCE -": ON_CLOSE 0,Term ALPHA 1 a$ = "Clic les points départ et arrivée"+CHR$(10)+" x1,y1 ="+CHR$(10)+" x2,y2 =" a$ = a$+CHR$(10)+" Écart =": CAPTION 1,a$ ALPHA 2: TOP 2,16: LEFT 2,55 ALPHA 3: TOP 3,32: LEFT 3,LEFT(2) ALPHA 4: TOP 4,48: LEFT 4,LEFT(3)+10 FOR r = 2 TO 4: FONT_COLOR r,80,80,255: NEXT r BUTTON 5: TOP 5,TOP(4)-1: LEFT 5,109: HEIGHT 5,20: CAPTION 5,"Réinit": ON_CLICK 5,Reini DLL_ON "C:\PANORAMIC\KGF\KGF.dll": ' <==== À AJUSTER ! Atcl: GOSUB Clic: x1 = x%: y1 = y%: CAPTION 2,STR$(x1)+" , "+STR$(y1) PAUSE 500 GOSUB Clic: x2 = x%: y2 = y%: CAPTION 3,STR$(x2)+" , "+STR$(y2) d% = SQR((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)): ' distance CAPTION 4,STR$(d%) END ' ============================================================================= Term: DLL_OFF TERMINATE ' ============================================================================= Clic: r = 0 WHILE r = 0: ' attente clic r = DLL_CALL1("CheckMouseButton",1): IF r = 1 THEN EXIT_WHILE END_WHILE r = DLL_CALL2("GetAbsoluteMousePosition",ADR(x%),ADR(y%)) RETURN ' ============================================================================= Reini: CAPTION 2,"": CAPTION 3,"": CAPTION 4,"": GOTO Atcl RETURN ' ============================================================================= Il s'affiche une petite fenêtre Panoramic (positionnée arbitrairement en haut à gauche de l'écran), on clique d'abord le 1er point, les coordonnées s'affichent, puis le 2ème point, idem, et s'affiche la distance en pixels entre les deux points. On peut recommencer autant de fois qu'on veut en cliquant le bouton Réinit. Ça peut être utile avec une image, une carte, etc. On peut évidemment déplacer la fenêtre si elle gêne là où elle est. Et on peut arrêter le programme à tout moment en cliquant la croix fermer de la fenêtre. | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Distance entre 2 points de l'écran Mer 9 Aoû 2023 - 16:23 | |
| Hey, c'est à ranger dans la réserve des astuces, ça peut toujours être utile ! Bravo ! Mais plutôt que d'utiliser une dll, ce n'était pas possible avec le carré de l'hypoténuse ? | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Distance entre 2 points de l'écran Mer 9 Aoû 2023 - 21:07 | |
| Alors là jjn4, je ne comprends pas ta remarque !!! La dll est utilisée pour détecter le clic sur l'écran et donner la position du clic. 2 fois. Et ensuite, avec ces données, dans le programme je fais: - Code:
-
d% = SQR((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)): ' distance C'est pas ça le carré de l'hypoténuse ??? Rappelle-toi le poème: Le carré de l'hypoténuse Est égal, si je ne m'abuse À la somme des carrés Des deux autres côtés. | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| |
Contenu sponsorisé
| Sujet: Re: Distance entre 2 points de l'écran | |
| |
|