PHP - Gráfico de funciones en 3 ejes

   
Vista:
Imágen de perfil de Sergio

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

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de xve

Gráfico de funciones en 3 ejes

Publicado por xve (5513 intervenciones) el 23/05/2014 23:03:06
Impresionante Sergio!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar