Blame view

Giac_maj/giac-1.4.9/src/plot3d.h 5.88 KB
6663b6c9   adorian   projet complet av...
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
  /* -*- mode:C++ ; compile-command: "g++ -I.. -g -c plot3d.cc" -*- */
  #ifndef _GIAC_PLOT3D_H
  #define _GIAC_PLOT3D_H
  /*
   *  Copyright (C) 2000,2014 B. Parisse, Institut Fourier, 38402 St Martin d'Heres
   *
   *  This program is free software; you can redistribute it and/or modify
   *  it under the terms of the GNU General Public License as published by
   *  the Free Software Foundation; either version 3 of the License, or
   *  (at your option) any later version.
   *
   *  This program is distributed in the hope that it will be useful,
   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   *  GNU General Public License for more details.
   *
   *  You should have received a copy of the GNU General Public License
   *  along with this program. If not, see <http://www.gnu.org/licenses/>.
   */
  #ifdef HAVE_CONFIG_H
  #include "config.h"
  #endif
  #include "first.h"
  #include <stdexcept>
  #include <cmath>
  #include <cstdlib>
  #include "gen.h"
  #include <stdio.h>
  // #include <stdiostream.h>
  
  #ifndef NO_NAMESPACE_GIAC
  namespace giac {
  #endif // ndef NO_NAMESPACE_GIAC
  
    gen remove_pnt_vect(const gen & g);
    extern const unary_function_ptr * const  at_sphere ;
    extern const unary_function_ptr * const  at_cylindre ;
    extern const unary_function_ptr * const  at_plan ;
    gen hypersurface(const gen & args,const gen & equation,const gen & vars);
    gen do_point3d(const gen & g);
    bool is3d(const giac::gen & g);
    bool perpendiculaire_commune(const gen & d1,const gen & d2,gen & M, gen & N,vecteur & n,GIAC_CONTEXT);
    gen similitude3d(const vecteur & centrev,const gen & angle,const gen & rapport,const gen & b,int symrot,GIAC_CONTEXT);
    gen hypersphere_equation(const gen & g,const vecteur & xyz);
    vecteur interpolyedre(const vecteur & p,const gen & bb,GIAC_CONTEXT);
    vecteur interdroitehyperplan(const gen & a,const gen &b,GIAC_CONTEXT);
    vecteur interhyperplan(const gen & p1,const gen & p2,GIAC_CONTEXT);
    vecteur interhypersurfacecurve(const gen & a,const gen &b,GIAC_CONTEXT); 
    vecteur inter2hypersurface(const gen & a,const gen &b,GIAC_CONTEXT);
    // a hyperplan, b hypersphere
    vecteur interplansphere(const gen & a,const gen & b,GIAC_CONTEXT);
    vecteur remove_face(const vecteur & face,const vecteur & v,GIAC_CONTEXT);
    gen hyperplan2hypersurface(const gen & g);
    gen hypersphere2hypersurface(const gen & g);
    gen hypersphere_equation(const gen & g,const vecteur & xyz);
    vecteur hypersphere_parameq(const gen & g,const vecteur & st);
    gen hypersurface_equation(const gen & g,const vecteur & xyz,GIAC_CONTEXT);
  
    bool hyperplan_normal_point(const gen & g,vecteur & n,vecteur & P);
  
    vecteur rand_3d();
  
    // Given a 3-d vector n, find 2 vectors normal to n
    bool normal3d(const gen & n,vecteur & v1,vecteur & v2);
    gen plotparam3d(const gen & f,const vecteur & vars,double function_xmin,double function_xmax, double function_ymin, double function_ymax,double function_zmin,double function_zmax,double function_umin,double function_umax,double function_vmin,double function_vmax,bool clrplot,bool f_autoscale,const vecteur & attributs,double ustep,double vstep,const gen & eq,const vecteur & eqvars,GIAC_CONTEXT);
  
    gen _plot3d(const gen & args,GIAC_CONTEXT);
    extern const alias_type alias_at_plot3d;
    extern const unary_function_ptr * const  at_plot3d ;
  
    extern const unary_function_ptr * const  at_hypersurface;
    extern const unary_function_ptr * const  at_hyperplan;
    gen hypersurface(const gen & args,const gen & equation,const gen & vars);
    gen _hypersurface(const gen & args,GIAC_CONTEXT);
    gen hypersurface_equation(const gen & g,const vecteur & xyz,GIAC_CONTEXT);
    extern const unary_function_ptr * const  at_hypersphere;
    vecteur hyperplan_normal(const gen & g);
    gen _hyperplan(const gen & args,GIAC_CONTEXT);
    gen _plan(const gen & args,GIAC_CONTEXT);
    extern const unary_function_ptr * const  at_hyperplan;
    gen _cone(const gen & args,GIAC_CONTEXT);
    gen _demi_cone(const gen & args,GIAC_CONTEXT);
    gen _cylindre(const gen & args,GIAC_CONTEXT);
    gen _perpendiculaire_commune(const gen & args,GIAC_CONTEXT);
    gen _polyedre(const gen & args,GIAC_CONTEXT);
    gen _prisme(const gen & args,GIAC_CONTEXT);
    gen _parallelepipede(const gen & args,GIAC_CONTEXT);
    gen _pyramide(const gen & args,GIAC_CONTEXT);
    gen _tetraedre_centre(const gen & args,GIAC_CONTEXT);
    gen _cube(const gen & args,GIAC_CONTEXT);
    gen _cube_centre(const gen & args,GIAC_CONTEXT);
    gen _octaedre(const gen & args,GIAC_CONTEXT);
    gen _icosaedre(const gen & args,GIAC_CONTEXT);
    gen _dodecaedre(const gen & args,GIAC_CONTEXT);
    gen _aretes(const gen & args,GIAC_CONTEXT);
    gen _faces(const gen & args,GIAC_CONTEXT);
  
    gen _hypersphere(const gen & args,GIAC_CONTEXT);
    gen _sphere(const gen & args,GIAC_CONTEXT);
    gen _quadrique(const gen & args,GIAC_CONTEXT);
  
    extern const unary_function_ptr * const  at_hypersphere;
    gen plotparam3d(const gen & f,const vecteur & vars,double function_xmin,double function_xmax, double function_ymin, double function_ymax,double function_zmin,double function_zmax,double function_umin,double function_umax,double function_vmin,double function_vmax,bool densityplot,bool f_autoscale,const vecteur & attributs,double ustep,double vstep,const gen & eq,const vecteur & eqvars,GIAC_CONTEXT);
    gen plotimplicit(const gen& f_orig,const gen&x,const gen & y,const gen & z,double xmin,double xmax,double ymin,double ymax,double zmin,double zmax,int nxstep,int nystep,int nzstep,double eps,const vecteur & attributs,bool unfactored,const context * contextptr);
  
    bool est_cospherique(const gen & a,const gen & b,const gen & c,const gen & d,const gen & f,GIAC_CONTEXT);
    gen _est_cospherique(const gen & args,GIAC_CONTEXT);
    extern const unary_function_ptr * const  at_est_cospherique;
  
    // convert 2-d graphic object to 3-d (with z=0)
    gen convert3d(const gen & g,GIAC_CONTEXT);
  
  #ifndef NO_NAMESPACE_GIAC
  } // namespace giac
  #endif // ndef NO_NAMESPACE_GIAC
  
  #endif // _GIAC_PLOT3D_H