MY-AL formule mathématique pour avancement

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
pcpunch
Messages : 23
Inscription : 22 Fév 2018 12:21

MY-AL formule mathématique pour avancement

Message par pcpunch » 07 Avr 2021 15:01

Bonjour j'essai de faire un système d'avancement avec l' UI, un genre de curseur qui se positionnerait au bon endroit.
J'utilise des contrôles images (background qui représente la barre d'avancement et un curseur qui est la position)
Image

Le curseur (rond) est enfant du background.

J'ai récupérer la valeur de position x minimal et maximal du curseur avec ce code :

Code : Tout sélectionner

MaxX = BackgroundCureur.GetComponent<RectTransform>().rect.width;
MinX = ((MaxX / 2) * -1);
Ca semble coller !

Mon soucis est que je dois transposer la position x (xpos) du curseur selon une plage de valeur allant de 0 à 1680.

Code : Tout sélectionner

RectTransform myRectTransform = Curseur.GetComponent<RectTransform>();       
        myRectTransform.localPosition = new Vector2(xpos, 0);
En gros schématiquement sur l'écran : l'image de fond(background) valeur pour x min et max:

(-360)---------------------------(0)-----------------------------(+360)

et pour positionner le curseur :
0 doit être égal à -360
1680 doit être égal à +360.

J'espère avoir était claire, si quelqu'un a une idée de la formule a appliquer je bloque complément !

Avatar de l’utilisateur
Max
Messages : 8234
Inscription : 30 Juil 2011 13:57
Contact :

Re: MY-AL formule mathématique pour avancement

Message par Max » 07 Avr 2021 18:02

Bonsoir,
pcpunch a écrit :
07 Avr 2021 15:01
(-360)---------------------------(0)-----------------------------(+360)

et pour positionner le curseur :
0 doit être égal à -360
1680 doit être égal à +360.
Si R est le ratio correspondant à la première amplitude de valeurs (0 à 1680) divisée par la seconde (360*2 = 720),
soit donc R = 2.33333333 etc...
Ben en suite, si V est ta valeur entrante ( V compris entre 0 et 1680), alors il suffit de d'écrire: V = (V/R)-360.

Math niveau début collège ;)
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

pcpunch
Messages : 23
Inscription : 22 Fév 2018 12:21

Re: MY-AL formule mathématique pour avancement

Message par pcpunch » 07 Avr 2021 18:21

Merci effectivement c'est la que l'on regrette d'avoir fait le minimum au collège lol
Ceci dit pour moi ça remonte à plus de 35ans lol

Répondre

Revenir vers « (C#) CSharp »