[RESOLU] Point le plus proche

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

[RESOLU] Point le plus proche

Message par falsam »

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 ?
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%
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Point le plus proche

Message par Ar-S »

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

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
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Point le plus proche

Message par falsam »

Ar-S a écrit :Pourquoi X=72 ? ou alors pourquoi grid = 12
y'a pas une coquille ? je pense qui si.
Non non, pas de coquille. :)

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%
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Point le plus proche

Message par blendman »

comme ça pitet (pas sûr ^^) :

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)
à priori ça marche je crois ;)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Point le plus proche

Message par Le Soldat Inconnu »

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)]
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Point le plus proche

Message par falsam »

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.
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%
Répondre