Bonjour a tous,

J'essaie en vain de mettre au point un script qui me permette de superposer 3 crédits sur un seul graph et j'y suis presque, sauf que je galère depuis 3 jours pour le finaliser, et je n'ai plus les yeux en face des trous a force de modifications.

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 
                                    <canvas width="400" height="300" style="max-width:80%" id="canvasLissage"></canvas>
                                    <script>
                                    function CalculM1(idA) {
 
                                     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
				     //=> Ml = 848
 
                                     Ec=25000;// Montant du Pret 2
                                     Tc=6; // Taux du Pret 2
                                     Nc=10; // Durée du Pret 2
                                     //=> Mc = 278
 
				     // 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);
                                    </script>
Voila ce que j'obtiens et voila ce que j'aimerai obtenir.

http://iobnet.com/testG.php

Merci à tous pour votre aide et excellent dimanche.
Olivier