Interpolation dans un tableau à 2 entrées

Signaler
Messages postés
2
Date d'inscription
samedi 7 février 2009
Statut
Membre
Dernière intervention
28 septembre 2010
-
Messages postés
2
Date d'inscription
samedi 7 février 2009
Statut
Membre
Dernière intervention
28 septembre 2010
-
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.

3 réponses

Messages postés
793
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
10 février 2021
8
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
Messages postés
276
Date d'inscription
mercredi 22 septembre 2010
Statut
Membre
Dernière intervention
8 janvier 2014
3
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).
Messages postés
2
Date d'inscription
samedi 7 février 2009
Statut
Membre
Dernière intervention
28 septembre 2010

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