Interpolation dans un tableau à 2 entrées

mitch40330 Messages postés 2 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 28 septembre 2010 - 27 sept. 2010 à 17:02
mitch40330 Messages postés 2 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 28 septembre 2010 - 28 sept. 2010 à 15:24
Bonjour,

Pour un projet, je dois faire un code qui permette à partir d'une table d'entrées de définir une sortir.
Par exemple la table suivante :

--|- 3 - 4
-----------
1 | 10 - 20
2 | 30 - 40

Si le paramètre colonne 3 et le paramlètre ligne 1 , le résultat est 10.
Si maintenant, je veux pour colonne 1,7 et ligne 3,4. Il faut faire une interpolation.
Mais je ne trouve pas les formules mathématiques pour faire cela.

Merci de votre aide.
A voir également:

3 réponses

cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
28 sept. 2010 à 09:36
Bonjour,
Tout dépend du type d'interpolation: linéaire, spline ou Bézier...
voilà un article :
http://www.codeproject.com/KB/recipes/simple_interpolation.aspx
Pour commencer, tu peux faire une interpolation linéaire sur les 2 colonnes, puis une interpolation linéaire sur la ligne ( 1.7 dans ton exemple ) avec les nouvelles valeurs interpolées.
Tu peux trouver des interpolations dasn les softs de ray tracing tel que dasn cet article:
http://www.codeproject.com/KB/graphics/Simple_Ray_TracinginC6.aspx

louis
0
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
28 sept. 2010 à 14:54
Dans le cas de l'interpolation linéaire, si c est compris entre a et b, distincts, de valeurs v(a)=10 et v(b)=20 (par exemple 3,4 entre 3 et 4 de valeurs 10 et 20 pour la première ligne) alors la valeur de c est donnée par (attention b-a non nul !) :

v(c)=((b-c)*v(a)+(c-a)*v(b))/(b-a) !

Ainsi lorsque, comme dans l'exemple, a et b diffèrent de 1 :
v(3,4)=(0,6*10+0,4*20)=14 pour la première ligne et
v(3,4)=(0,6*30+0,4*40)=24 pour la seconde.

Il n'y a plus qu'à appliquer la même formule sur les lignes pour interpoler le 1,7 entre 1 et 2 de valeurs 14 et 24 (pour la colonne 3,4) ce qui donne 0,3 fois la valeur 14 plus 0,7 fois la valeur 24 !

Autrement dit au lieu de prendre pour coefficient 0,5 et 0,5 comme pour la moyenne
on prend pour chaque valeur des coefficients (de somme unité) proportionnels à la distance à l'autre valeur (poids fort lorsque l'on est proche).
0
mitch40330 Messages postés 2 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 28 septembre 2010
28 sept. 2010 à 15:24
Merci de votre aide.

J'ai fait trois interpolations et réussi à résoudre mon problème.
Si vous voulez voire le programme dite moi.

Michaël
0
Rejoignez-nous