~ubuntu-branches/ubuntu/maverick/swig1.3/maverick

« back to all changes in this revision

Viewing changes to Examples/GIFPlot/Tcl/mandel/mandel.i

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Landschoff
  • Date: 2002-03-29 01:56:07 UTC
  • Revision ID: james.westby@ubuntu.com-20020329015607-c0wt03xu8oy9ioj7
Tags: upstream-1.3.11
ImportĀ upstreamĀ versionĀ 1.3.11

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Special module to run the mandlebrot set
 
2
%module gifplot
 
3
%include gifplot.i
 
4
 
 
5
%inline %{
 
6
 
 
7
void mandel(Plot2D *p2, int tol) {
 
8
        double scalingx;
 
9
        double scalingy;
 
10
        double zr,zi,ztr,zti,cr,ci;
 
11
        double cscale;
 
12
        int    i,j,n;
 
13
        FrameBuffer *f;
 
14
 
 
15
        f = p2->frame;
 
16
        scalingx = (p2->xmax-p2->xmin)/f->width;
 
17
        scalingy = (p2->ymax-p2->ymin)/f->height;
 
18
        
 
19
        cscale = 239.0/tol;
 
20
        printf("working...\n");
 
21
        for (i = 0; i < f->width; i++) {
 
22
          for (j = 0; j < f->height; j++) {
 
23
            zr = scalingx*i + p2->xmin;
 
24
            zi = scalingy*j + p2->ymin;
 
25
            cr = zr;
 
26
            ci = zi;
 
27
            n = 0;
 
28
            while (n < tol) {
 
29
              ztr = zr*zr-zi*zi + cr;
 
30
              zti = 2*zr*zi + ci;
 
31
              zr = ztr;
 
32
              zi = zti;
 
33
              if (ztr*ztr + zti*zti > 20) break;
 
34
              n = n + 1;
 
35
            }
 
36
            
 
37
            if (n >= tol) FrameBuffer_plot(f,i,j,BLACK);
 
38
            else FrameBuffer_plot(f,i,j,16+(int) (n*cscale));
 
39
          }
 
40
          if ((i % 10) == 0) printf("%d\n",i);
 
41
        }
 
42
 
 
43
}
 
44
                
 
45
%}
 
46
        
 
47