Editeur d'équation en ligne

cs_Blasteur Messages postés 6 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 8 août 2002 - 7 août 2002 à 17:49
guilhemh Messages postés 36 Date d'inscription lundi 22 avril 2002 Statut Membre Dernière intervention 12 décembre 2005 - 14 sept. 2002 à 11:40
Salut,

je suis à la recherche d'un outil permettant de saisir des équations mathématiques sur une page web et générant ensuite soit tout le code html nécessaire soit une image...

Qqn a t il une idée ?
py

6 réponses

cs_Dean Messages postés 500 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 2 août 2004
8 août 2002 à 11:31
J'ai vu ça quelque part mais ce serait plutôt du PHP et non du JS (pour générer les images).

Dean
http://charloweb.free.fr
0
guilhemh Messages postés 36 Date d'inscription lundi 22 avril 2002 Statut Membre Dernière intervention 12 décembre 2005
2 sept. 2002 à 20:54
<?php
//
// define global constants
//
define("PLOT_MIN", 0.1);
define("PLOT_MAX", 100);
define("PLOT_STEP", 0.5);
define("DIAGRAM_HEIGHT", 300);
define("DIAGRAM_HORIZON", 150);

function parse_function($in_string)
{
// define a custom function header
$header = "";
$header = $header."function calculate(\$req_code, \$x)\n";
$header = $header."{\n";
$header = $header."eval(\$req_code);\n";
// define a custom function footer
$footer = "\n}\n";
// convert all characters to PHP variables
$out_string = ereg_replace("([a-zA-Z])", "$\\1", $in_string);
// prepend header, create equation, and append footer
$out_string = $header."return(".$out_string.");\n".$footer;
// return result
return($out_string);
}

function create_image()
{
// export this variable
global $color_plot;
// we calculate the X scale based on the plot parameters
// function’s extreme points
$width = PLOT_MAX / PLOT_STEP;
$height = DIAGRAM_HEIGHT;
$image = imagecreate($width, $height);
// allocate colors
$color_backgr = imagecolorallocate($image, 255, 255, 255);
$color_grid = imagecolorallocate($image, 0, 0, 0);
$color_plot = imagecolorallocate($image, 255, 0, 0);
// clear image
imagefilledrectangle($image, 0, 0, $width - 1, $height - 1, $color_backgr);
// draw axes
imageline($image, 0, 0, 0, $height - 1, $color_grid);
imageline($image, 0, DIAGRAM_HORIZON, $width - 1, DIAGRAM_HORIZON,$color_grid);
// print some text
imagestring($image, 3, 10, DIAGRAM_HORIZON + 10, PLOT_MIN, $color_grid);
imagestring($image, 3, $width - 30, DIAGRAM_HORIZON + 10, PLOT_MAX, $color_grid);
// return image
return($image);
}

function plot($image, $x, $y)
{
// import the color handle
global $color_plot;
// set these as static to "remember" the last coordinates
static $old_x = PLOT_MIN;
static $old_y = 0;
// only plot from the second time on
if($old_x != PLOT_MIN)
imageline($image, $old_x / PLOT_STEP, DIAGRAM_HEIGHT - ($old_y + DIAGRAM_HORIZON), $x / PLOT_STEP, DIAGRAM_HEIGHT -($y + DIAGRAM_HORIZON), $color_plot);
$old_x = $x;
$old_y = $y;
}
// see if we’ve been invoked with a function string set
if(!isset($function_string)) {
// no, there’s no function string present,
// generate an input form
print("<html>");
print("<form action="".basename($PHP_SELF)."" method="post">");
print("Function definition:
");
print("Required PHP code:
");
print("");
print("</form>");
print("</html>");
} else {
// translate input function to PHP code
$parsed_function = parse_function($function_string);
// warning : use this function with precaution
eval($parsed_function);
// create image
$image = create_image();
// plot the function
for($x = PLOT_MIN; $x < PLOT_MAX; $x += PLOT_STEP) {
$y = calculate($req_code, $x);
plot($image, $x, $y);
}
// set content type
header("Content-type: image/png");
// send image
imagepng($image);
}
?>

Je peux traduire les commentaires si tu veux ou expliquer plus en détails
0
cs_Dean Messages postés 500 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 2 août 2004
2 sept. 2002 à 22:53
Ça me fait grave penser au code de Till Gerken et Tobias Ratschiller dans "PHP- Développement d'applications web".

Je me trompe ?

Dean
http://charloweb.free.fr
0
guilhemh Messages postés 36 Date d'inscription lundi 22 avril 2002 Statut Membre Dernière intervention 12 décembre 2005
3 sept. 2002 à 00:25
Non
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Dean Messages postés 500 Date d'inscription mardi 16 avril 2002 Statut Membre Dernière intervention 2 août 2004
6 sept. 2002 à 20:31
Pourtant j'ai vérifié : c'est pareil.

Attention tout de même au eval(), qui laisse à l'utilisateur la possibilité d'éxécuter du code PHP...

Dean
http://charloweb.free.fr
0
guilhemh Messages postés 36 Date d'inscription lundi 22 avril 2002 Statut Membre Dernière intervention 12 décembre 2005
14 sept. 2002 à 11:40
bien sur que c'est le meme, le principal c'est de répondre à la question
0