img
@_ö
(23:24)  Bienvenue ! - Inscrivez vous pour poster ! -
@Boo + 16 inconnu(s)

Login :  Mot de passe :      Se souvenir de moi.  Mot de passe perdu ?
/!\:: Cliquez ici pour vous inscrire et poster, créer des sujets ou des forums ! ::/!\
 « - 1/1 - » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (4r) » cherche algorithme
./Post de départ - cherche algorithme
17.08.2003 - 502
18:48  JoanCZ - Posté : 07-08-2010  M

bonjour a tous :)


img


Alors voila, j'ai un point C qui se ballade entre A et B.
Je connait sa valeur x.
Comment puis je faire pour connaitre sa valeur y ? (il doit toujours se trouver sur le segment AB ;) )



j'ai essayé ca :

int a,b;

if(XC>XA && XC<XB)
{
a= (YA-YB)/(XA-XB);
b= YA-a*XA;
YC= (a*XC)+b;
}

mais ca marche pas, en gros YC est toujours egal a YA :/


quelqu'un a une idée ????


merci d'avance ;)


Menuisier of the Dead bientôt sur GBA !!!! :D

Projet en cours:
-Menuisier Of The Dead

./Publicité AdSense
./1
06.02.2003 - 7265
19:32  geogeo - Posté : 07-08-2010  M

Si tu connais ya0 et yb0 et xab alors tu as ton equation qui dit que:
y = (xab /yb0) * x + ya0 ?


la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/
- Mon site perso -: http://tisofts.free.fr Projets TI68K en cours: GFA-Basic = http://www.tigen.org/gfabasic Arkanoid. PolySn
./2
16.06.2001 - 55196
20:17  squalyl - Posté : 07-08-2010  M

non, le problème c'est que a est entier , et que la fraction a= (YA-YB)/(XA-XB); est probablement inférieure à 1, ce qui fait que c'est arrondi à zéro. et YC=YA

Si tu veux que ça marche il y a deux solutions:

1 - soit déclarer a en float

2 - soit faire la multiplication avant la division pour ne jamais obtenir une division qui donne un truc plus petit que 1, en remplaçant a dans ton équation:

b= YA-((YA-YB)*XA)/(XA-XB);
YC= ( (YA-YB)*XC)/(XA-XB)+b;

et ça devrait le faire


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./3
27.04.2006 - 30232
21:53  Zerosquare - Posté : 07-08-2010  @_ö

C'est bien compliqué tout ça pour une simple interpolation linéaire :)

YC = YA + [(YB - YA) * (XC - XA) / (XB - XA)]

Et hop, pas de problème d'arrondi (attention à ne pas dépasser le minimum/maximum si c'est des entiers, par contre). Dans les cas où on peut choisir la valeur de (XB - XA), une astuce est de le prendre égal à 2n (avec n entier positif), comme ça la division est remplaçable par un décalage de bits :)


Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
./4
17.08.2003 - 502
06:59  JoanCZ - Posté : 08-08-2010  M

Merci tout le monde =)

J'opte pour le calcul de zerosquare, qui fonctionne parfaitement pour ce que je fais :D



Menuisier of the Dead bientôt sur GBA !!!! :D

Projet en cours:
-Menuisier Of The Dead

./Publicité AdSense
 « - 1/1 - » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (4r) » cherche algorithme

./Poster un nouveau message. - Ouvrir dans une nouvelle fenêtre
Login : Mot de passe :

url - image - media  
spoiler - pre - fixed
quote - box - hr
poll - code





Smileys
Smileys perso
Pièce jointe
     Flood control (?) :    
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

» yN ©1624 - Aide / Charte / Crédits
20ms | Statistiques