Je ne comprend pas de quel tu parle.fdesar a écrit:1/ Sauf que si d=0, la division est illégale et c'est le cas si les deux directrices sont // à l'axe des x
où j'avais parfaitement précisé que, si (c'est à dire le d de la procédure Tangente_Commune) est nul, ben on avait plus affaire à une équation de degré 3 en mais à une solution particulière plus une équation du second degré en .Ben314 a écrit:Ensuite, on calcule :
=> une droite est tangente commune ssi ce qui donne la fameuse éqaution du troisième degré à résoudre en et avec la solution particulière si
def Tangente_Commune(T1,T2): #T1,T2=[a,b,c,d,e]=Eqaution au^2+buv+cv^2+duw+evw=0
R=[]
d=T1[0]*T2[3]-T1[3]*T2[0];
if d != 0 # 0-3 tangentes communes, cas général
a=(T1[0]*T2[4]-T1[4]*T2[0]+T1[1]*T2[3]-T1[3]*T2[1])/d
b=(T1[1]*T2[4]-T1[4]*T2[1]+T1[2]*T2[3]-T1[3]*T2[2])/d;
c=(T1[2]*T2[4]-T1[4]*T2[2])/d
S=Solve3([a,b,c]);
for s in S:
d=sqrt(s**2+1);
a=s/d;
b=1/d;
R.append([a,b,-(T1[0]*a**2+T1[1]*a*b+T1[2]*b**2)/(T1[3]*a+T1[4]*b)]);
return R
else
a=(T1[0]*T2[4]-T1[4]*T2[0]+T1[1]*T2[3]-T1[3]*T2[1])
if a != 0 # 0-2 tangentes communes, dont les tangentes verticales pour lesquelles s=0
b=(T1[1]*T2[4]-T1[4]*T2[1]+T1[2]*T2[3]-T1[3]*T2[2]);
c=(T1[2]*T2[4]-T1[4]*T2[2])
S=Solve2([b/a,c/a]);
for s in S:
R.append([s,1,-(T1[0]*a**2+T1[1]*a*b+T1[2]*b**2)/(T1[3]*a+T1[4]*b)]);
return R
else # 1 tangente commune horizontale
R.append([0,1,-(T1[0]*a**2+T1[1]*a*b+T1[2]*b**2)/(T1[3]*a+T1[4]*b)]);
C'est un peu toujours la même chose : l'équation , elle ne sert (quasi) à rien : juste à harmoniser le résultat de façon à ce que les équation de droite qu'on manipule soit toujours de "la même forme" (i.e. avec un vecteur normal unitaire).fdesar a écrit:
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :