Voici ce que j'obtiens :
Voici ce que j'essaie d'obtenir :
INFOS :
Tptz=0.000000000000000000000000000000001; //Taux du taux 0
Mptz=92000; // Montant du Pret a taux 0
Nptz_diff=5; // le pret a taux 0 commence dans 5ans
Nptz_amort=20; // le pret a taux 0 duree 20ans
Mptz=500; // Mensualité du pret a taux 0
El=200000; // Montant du Pret 1
Tl=2; // Taux du Pret 1
Nl=25; // Durée du Pret 1
=> M1= 848; // Mensualité du pret 1
Ec=25000;// Montant du Pret 2
Tc=6; // Taux du Pret 2
Nc=10; // Durée du Pret 2
=> Mc= 278; // Mensualité du pret 2
Code :
function CalculM1(idA) {
// Calcul de la mensualité du Pret 1
M1 = El*(Tl/100)/(1-Math.pow((1+Tl/100/12),(-(Nl*12))))/12;
M1=Math.floor(M1*100)/100;
// Calcul de la mensualité du Pret 2
Mc=Ec*(Tc/100)/(1-Math.pow((1+Tc/100/12),(-(Nc*12))))/12;
Mc=Math.round(Mc*100)/100;
GraphLissage(Mc,Nc,M1,Nl,Mptz,Nptz_diff,Nptz_amort,idA);
}
function GraphLissage(Mc,Nc,M1,Nl,Mptz,Nptz_diff,Nptz_amort,idA) {
M2=M1+Mc+Mptz;
Width=document.getElementById("canvasLissage").width;
Height=document.getElementById("canvasLissage").height;
cnvlss = document.getElementById("canvasLissage");
ctxlss = cnvlss.getContext("2d");
ctxlss.fillStyle="white";
ctxlss.fillRect(0,0,Width,Height);
ctxlss.fillStyle="black";
ctxlss.beginPath();
ctxlss.moveTo(10,Height-20);ctxlss.lineTo(Width-4,Height-20);
ctxlss.stroke();
ctxlss.beginPath();ctxlss.moveTo(Width-12,Height-25);
ctxlss.lineTo(Width-4,Height-20);ctxlss.lineTo(Width-12,Height-15);
ctxlss.stroke();
ctxlss.beginPath();
ctxlss.moveTo(20,Height-10);ctxlss.lineTo(20,10);
ctxlss.stroke();
ctxlss.beginPath();ctxlss.moveTo(15,18);
ctxlss.lineTo(20,10);ctxlss.lineTo(25,18);
ctxlss.stroke();
Mx=Width-40;
ctxlss.fillStyle="blue";
ctxlss.fillRect(20,40,Mx*Nc/Nl,M1/M2*(Height-60));
ctxlss.fillRect(20+Mx*Nc/Nl , 40 ,Width-(20+Mx*Nc/Nl)-20 ,(Height-60));
ctxlss.fillStyle="green";
ctxlss.fillRect(20,40+M1/M2*(Height-60),Mx*Nptz_amort/Nl,Mptz/M2*(Height-60));
ctxlss.fillStyle="magenta";
ctxlss.fillRect(20,40+M1/M2*(Height-60),Mx*Nc/Nl,Mc/M2*(Height-60));
ctxlss.font="8pt Calibri,Geneva,Arial";
ctxlss.fillStyle="black";
ctxlss.fillText(Nptz_amort,Mx*Nptz_amort/Nl,Height-5);
ctxlss.fillText(Nc,Mx*Nc/Nl,Height-5);
ctxlss.fillText(Nl,Mx-5,Height-5);
ctxlss.textAlign="left";
ctxlss.fillText(Math.round(Mc),0,40+M1/M2*(Height-60));
ctxlss.fillText(Math.round(Mptz),0,35+M1/M2*(Height-60));
ctxlss.fillText(Math.round(M1),0,30);
}
CalculM1(idA);