Je coince sur un problème qui pourtant me paraissait simple !!!!
Connaissant la position (X,Y) d'un point sur un grid ainsi que l'écartement entres deux points sur le grid, quel serait la règle pour connaitre le point le plus proche de celui-çi.
Exemple:
Distance entre deux points sur le grid = 12
Un box que je dessine en X=74, Y=46
Comment savoir que mon code doit le positionner en X=72 et Y=48 ?
[RESOLU] Point le plus proche
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
[RESOLU] Point le plus proche
Dernière modification par falsam le mar. 19/juin/2012 19:16, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Point le plus proche
Pourquoi X=72 ? ou alors pourquoi grid = 12
y'a pas une coquille ? je pense qui si.
Sinon pour l'écart si tu mets en structure tes dimensions tu peux bien connaitre tes positions en Ybis
y'a pas une coquille ? je pense qui si.
Sinon pour l'écart si tu mets en structure tes dimensions tu peux bien connaitre tes positions en Ybis
Code : Tout sélectionner
Global ecart.i = 2
structure blocPos
Y = 46
Ybis = Y-ecart
enstructure
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Point le plus proche
Non non, pas de coquille.Ar-S a écrit :Pourquoi X=72 ? ou alors pourquoi grid = 12
y'a pas une coquille ? je pense qui si.

Je voudrais améliorer mon code Mindmap.
http://www.purebasic.fr/french/viewtopi ... =6&t=12885
Quand je place une entité, je voudrais que le sommet Haut/Gauche (X,Y) se place automatiquement sur le point le plus proche.
Pour cela j'ai comme paramètre l'écartement entre deux points sur le grid (Exemple 12 qui se fixe dans les paramètres de mon code minmap) et je connais aussi les coordonnées X, Y de l'entité (Exemple 74, 46).
L'écart entre les point des grid étant de 12, les chiffres les plus proches pour les coordonnées de cette éntité (74,46) sera donc (72,48).
Je préfère éviter de passer par une structure.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Point le plus proche
comme ça pitet (pas sûr ^^) :
à priori ça marche je crois 
Code : Tout sélectionner
Procedure pointProche(x,grid=12)
x = Round(X/grid,#PB_Round_Nearest)*grid
ProcedureReturn x
EndProcedure
x = pointProche(74)
y = pointProche(48)
Debug Str(x)+"/"+Str(y)

http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Point le plus proche
il y a plus simple encore
Code : Tout sélectionner
Procedure pointProche(x, grid = 12)
x = x / grid
x * grid
ProcedureReturn x
EndProcedure
x = pointProche(74)
y = pointProche(48)
Debug Str(x) + "/" + Str(y)
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Point le plus proche
Yeahhhhhh merci à vous deux. la solution de blendman est la solution car il me permet de savoir si c'est le point gauche ou droite qui est le plus proche:) La tienne LSI ne me permet que de connaitre le point gauche.
Dans tous les cas encore une fois merci à vous deux.
Dans tous les cas encore une fois merci à vous deux.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%