« Programmation objet et géométrie/Les lignes droites de canvas » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 250 :
===Conversion en fraction===
 
On peut obtenir les [[w:http://fr.wikipedia.org/wiki/Fraction_continue#Réduites_d'une_fraction_continue|réduites d'une fraction continue]] avec deux suites doublement récurrentes (façon [[w:Nombres de Fibonacci|Fibonacci]]) dont les coefficients sont ceux de la fraction continue. Comme cette fonction JavaScript réalise l'inverse de la précédente, elle est nommée ''cont2frac'' (pour l'anglais ''continued to fraction''):
On peut obtenir
 
<source lang="javascript">
function cont2frac(c){
//suite des numérateurs et des dénominateurs
var num=[0,1];
var den=[1,0];
for(n in c){
num=[c[n]*num[0]+num[1],num[0]];
den=[c[n]*den[0]+den[1],den[0]];
}
return [num[0],den[0]];
}
</source>
 
L'usage de ces deux fonctions est typique de pratiquement toutes les [[w:Mathématiques|maths]]: On commence (avec ''frac2cont'') par transporter tout le problème dans un espace (celui des fractions continues) où il est plus facile à résoudre; on en profite pour le résoudre, puis on transporte sa solution (par ''cont2frac'') dans l'espace de départ où on peut exploiter sa solution. Ce procédé est si répandu qu'il porte un nom: La [[w:Conjugaison (algèbre)|conjugaison]] (exemples connus: Changement de bases en [[w:Matrice (mathématiques)|calcul matriciel]], transformées de [[w:Transformée de Fourier|Fourier]] et de [[w:Transformée de Laplace|Laplace]] etc.). Le mot ''conjugaison'' semble dù à [[w:Évariste Galois|Galois]].
 
===Fils d'une fraction===
 
<source lang="javascript">
function fils(f){
var cont=frac2cont(f);
cont[cont.length-1]++;
return cont2frac(cont);
}
</source>
 
 
===Fille d'une fraction===
 
<source lang="javascript">
function fille(f){
var cont=frac2cont(f);
cont[cont.length-1]--;
cont[cont.length]=2;
return cont2frac(cont);
}
</source>
 
==Dessin de l'arbre==