Un exemple: tracer une parabole avec entrée des coefficients a, b et c

La page principale parabole.htm

<HTML>
<HEAD>
<SCRIPT language=javascript>
      Le script en Javascript qui récupère les entrées et actualise le dessin
var a = 1, b = 2, c = -3;                        
valeurs par défaut
function Coeffs()
{ a = parseFloat(document.formular.a.value);
                     récupération des paramètres
b = parseFloat(document.formular.b.value);
c = parseFloat(document.formular.c.value);
window.parabole(a, b, c); }                                                  
actualisation du tracé
</SCRIPT>
</HEAD>
<BODY bgColor=white onload="Coeffs()">                                         
tracé par défaut à l'ouverture de la page
<P><EMBED height=400 src=parabole.svg width=300 ></P>               
Le fichier SVG comme objet d'un plugin
<FORM name=formular align="center">                                        
Formulaire
f(x) = <INPUT name=a size=2 value=1>x²+                       
Entrée des coefficients a, b et c
<INPUT name=b size=2 value=2>x +
<INPUT name=c size=2 value=-3>
<INPUT onclick=Coeffs(); type=button value=Tracer>
             Bouton qui déclenche le nouveau tracé
</FORM>
</BODY>
</HTML>

Le fichier parabole.svg fichier texte

<?xml version="1.0" encoding="iso-8859-1"?>
<svg id="root" xml:space="preserve" width="300" height="400" onload="OnLoadEvent(evt)">     
Dimensions
<g>
<rect id="bkgrnd" x="0" y="0" width="300" height="400" style="fill:#C0C0C0"/>                  
Rectangle de fond
<path id="repere" style="stroke-width:1; stroke:red; fill:none" d="M0 200 300 200 M150 0 150 400"/>           
Axes
<path id="repere2" style="stroke-width:1; stroke:black; fill:none" d="M148 192 150 190 152 192 M158 198 160 200 158 202"/>
                                                                                                                                                    Flèches des Unités
<path id="curve" style="stroke-width:1; stroke:blue; fill:none" d=""/>                
Déclaration du tracé de la parabole
</g>
<script><![CDATA[
function parabole(a, b, c)
{ var str = "M", dx = 0.1;                                                                                             
Pas de tracé
for (var x=-15.; x <= 15.; x += dx)                                                                    
Tracé pour x entre -15 et 15
str += (150. + 10.*t) + " " + (200. - 10.*(a*t*t + b*t +c)) + " ";                      
Construction de la chaîne (*)
curve.setAttribute("d", str);}
function OnLoadEvent(evt)
{ var doc = evt.getTarget() != null ? evt.getTarget().getOwnerDocument() : null;
if (doc != null)
{ curve = doc.getElementById("curve");
window.parabole = parabole; }}                                            
Définition du tracé "curve" comme objet parabole pour la fenêtre
]]></script>
</svg>

L'origine est au centre du rectangle: 150 ; 200. L'unité est de 10 pixels .
Les ordonnées sont comptées à partir du haut du rectangle d'où les formules pour placer un point (x ; y): 150 +10*x et 200 - 10*y

(*) La chaîne sera de la forme Mx1 y1 x2 y2 ………………….