
Gráfico de funciones en 3 ejes
Publicado por Sergio (1 intervención) el 23/05/2014 16:53:25
Hola, comparto con ustedes el fuente de un programa php que realicé para realizar gráficos de funciones en 3 ejes, lo hice en el marco de un proyecto para una universidad, pueden cambiar algunos de sus parámetros así como la función que tiene por defecto
Espero a alguien le pueda servir.-
Saludos,

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
<?php
//ángulo de proyección en grados parámetro modificable
$angulo=15;
//proyección de y sobre el eje x , no modificable
$d=cos($angulo/180*pi());
//proyección de z sobre el eje x , no modificable
$d1=sin($angulo/180*pi());
//líneas sobre el eje x, modificable
$m=80;
//líneas sobre el eje y, modificable
$n=80;
//x1 x mínimo x2 x máximo (intervalo de estudio) modificable
$x1=-450;
$x2=450;
//y1 y mínimo y2 y máximo (intervalo de estudio) modificable
$y1=-450;
$y2=450;
//ev escala vertical modificable
$ev=4;
//x3 intervalo de líneas sobre el eje x no modificable
$x3=($x2-$x1)/($m-1);
//y3 intervalo de líneas sobre el eje y no modificable
$y3=($y2-$y1)/($n-1);
//x abcisa, y ordenada, z cota (función ejemplo: seno (x) + seno (y) modificable)
for ($i=1;$i<=$m;$i++) {
for ($j=1;$j<=$n;$j++) {
$x=$x1+$x3*($i-1);
$y=$y1+$y3*($j-1);
$ym[$i][$j]=$y-$x*$d;
$zm[$i][$j]=(sin($x)+sin($y)-$x*$d1)*$ev;
}
}
?>
<html>
<head>
</head>
<body>
<svg id="id_svg" width="1000" height="1000">
<?php
//trazado de lineas sobre eje x
for ($i=1;$i<=$m;$i++) {
$k=0;
for ($j=2;$j<=$n;$j++) {
$k=$k+1;
echo '<line id="'.$i.'_'.$j.'" x1="'.$ym[$i][$k].'" y1="'.$zm[$i][$k].'" x2="'.$ym[$i][$j].'" y2="'.$zm[$i][$j].'" style="stroke:green; stroke-width:1"/>'."\n";
}
}
//trazado de líneas sobre eje y
for ($j=1;$j<=$n;$j++) {
$k=0;
for ($i=2;$i<=$m;$i++) {
$k=$k+1;
echo '<line id="'.$k.'_'.$j.'" x1="'.$ym[$k][$j].'" y1="'.$zm[$k][$j].'" x2="'.$ym[$i][$j].'" y2="'.$zm[$i][$j].'" style="stroke:green; stroke-width:1"/>'."\n";
}
}
?>
</svg>
</body>
</html>
Espero a alguien le pueda servir.-
Saludos,

Valora esta pregunta


1