⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xrgraph.cpp

📁 FreeFem++可以生成高质量的有限元网格。可以用于流体力学
💻 CPP
📖 第 1 页 / 共 3 页
字号:
            {/* Cursor control & motion */	      /*            case XK_Left :              flag = 1;              char1 = call(keyboa).curs_left;              break;            case XK_Up :              flag = 1;              char1 = call(keyboa).curs_up;              break;            case XK_Right :              flag = 1;              char1 = call(keyboa).curs_right;              break;            case XK_Down :              flag = 1;              char1 = call(keyboa).curs_down;              break;            case XK_Next :              flag = 1;              char1 = call(keyboa).pad_down;              break;            case XK_Prior :              flag = 1;              char1 = call(keyboa).pad_up;              break;            case XK_End :              flag = 1;              char1 = call(keyboa).marg_right;              break;            case XK_Begin :              flag = 1;              char1 = call(keyboa).marg_left;              break;	      *//* Misc Functions */ 	      /*             case XK_Select :              flag = 1;              char1 = call(keyboa).mark;              break; *//*            case XK_Print :              flag = 1;              char1 = ;              break;              case XK_Execute :              flag = 1;              char1 = ;              break;              case XK_Insert :              flag = 1;              char1 = ;              break;            case XK_Undo :              flag = 1;              char1 = call(keyboa).undo;              break;            case XK_Redo :              flag = 1;              char1 = ;              break;            case XK_Menu :              flag = 1;              char1 = ;              break;            case XK_Find :              flag = 1;              char1 = ;              break;            case XK_Cancel :              flag = 1;              char1 = call(keyboa).line_del;              break;            case XK_Help :              flag = 1;              char1 = call(keyboa).help;              break;            case XK_Break :              flag = 1;              char1 = ;              break;            case XK_Mode_switch :              flag = 1;              char1 = ;              break;            case XK_script_switch :              flag = 1;              char1 = ;              break;            case XK_Num_Lock :              flag = 1;              char1 = ;              break;            case XK_F1 :              flag = 1;              char1 = shift ? call(keyboa).sfunct1 : call(keyboa).funct1 ;              break;            case XK_F2 :              flag = 1;              char1 = shift ? call(keyboa).sfunct2 : call(keyboa).funct2 ;              break;            case XK_F3 :              flag = 1;              char1 = shift ? call(keyboa).sfunct3 : call(keyboa).funct3 ;              break;            case XK_F4 :              flag = 1;              char1 = shift ? call(keyboa).sfunct4 : call(keyboa).funct4 ;              break;            case XK_F5 :              flag = 1;              char1 = shift ? call(keyboa).sfunct5 : call(keyboa).funct5 ;              break;            case XK_F6 :              flag = 1;              char1 = shift ? call(keyboa).sfunct6 : call(keyboa).funct6 ;              break;            case XK_F7 :              flag = 1;              char1 = shift ? call(keyboa).sfunct7 : call(keyboa).funct7 ;              break;            case XK_F8 :              flag = 1;              char1 = shift ? call(keyboa).sfunct8 : call(keyboa).funct8 ;              break;            case XK_F9 :              flag = 1;              char1 = shift ? call(keyboa).sfunct9 : call(keyboa).funct9 ;              break;            case XK_F10 :              flag = 1;              char1 = shift ? call(keyboa).sfunct10 : call(keyboa).funct10 ;              break;            case XK_F11 :              flag = 1;              char1 = shift ? call(keyboa).sfunct11 : call(keyboa).funct11 ;              break;            case XK_F12 :              flag = 1;              char1 = shift ? call(keyboa).sfunct12 : call(keyboa).funct12 ;              break;	      */            case XK_Shift_L :              shift=1;              break;            case XK_Shift_R :              shift=1;              break;           case XK_Control_L :              control=1;              break;            case XK_Control_R :              control=1;              break;            case XK_Caps_Lock :              shiftlock = 1 ;              break;            case XK_Shift_Lock :              shiftlock = 1 ;              break;            case XK_Meta_L :              alt=1;              break;            case XK_Meta_R :              alt=1;              break;            case XK_Alt_L :              alt=1;              break;            case XK_Alt_R :              alt=1;              break;            } /* end switch */         }    }    else if(event.type == KeyRelease)    { *x1 = event.xkey.x;      *y1 = event.xkey.y;       char1= event.xkey.keycode ;       keysym=0;       nb=XLookupString(&event.xkey,buffer,20,&keysym,&status);/*          if     (IsFunctionKey(keysym))     printf("function up\n");          else if(IsModifierKey(keysym))     printf("modifier up\n");          else if(IsKeypadKey(keysym))       printf(" keypad up\n");          else if(IsMiscFunctionKey(keysym)) printf(" misc function up\n");          else if(IsPFKey(keysym))           printf(" PF key up\n");*/       if (nb == 0)          {          switch(keysym)            {            case XK_Shift_L :              shift=0;              break;            case XK_Shift_R :              shift=0;              break;           case XK_Control_L :              control=0;              break;            case XK_Control_R :              control=0;              break;            case XK_Caps_Lock :              shiftlock = 0 ;              break;            case XK_Shift_Lock :              shiftlock = 0 ;              break;            case XK_Meta_L :              alt=0;              break;            case XK_Meta_R :              alt=0;              break;            case XK_Alt_L :              alt=0;              break;            case XK_Alt_R :              alt=0;              break;            } /* end switch */         }    }  }  XDefineCursor(display,win,cursor_watch);  XFlush(display);  return char1;}   char Getxyc(float &x,float &y){   //  cout << " in Getxyc" << endl;  char c;  int i,j;  c = Getijc( &i,&j);  x = scali(i);  y = scalj(j);  //  cout << " out  Getxyc" << x << " " << y << " " << c << endl;  return c;}void rattente(int waitm){ int i,j;  XFlush(display);  if (waitm)      Getijc(&i,&j);} void GetScreenSize(int &ix,int &iy){  ix = width;  iy = height;}void openPS(const char *filename ){   char ffff[32];  int count=0;  if(psfile_save) closePS();  time_t t_loc;  float s=0.5;  char  username[10];  /*if (!cuserid(username)) */ strcpy(username,"inconnue");  time(&t_loc);  bool notfound;  if( !filename)    do {      struct stat buf;      sprintf(ffff,"rgraph_%.3d.ps",count++);      volatile int r= stat(ffff,&buf) ;      notfound = r !=0;      if(count>1000) break;    } while ( !notfound );     const char *fps (filename?filename:ffff);    psfile=fopen(fps,"w");  if(psfile) {    psfile_save=psfile;    fprintf(psfile,"%%!PS-Adobe-2.0 EPSF-2.0\n%%%%Creator: %s\n%%%%Title: FreeFem++\n","user");    fprintf(psfile,"%%%%CreationDate: %s",ctime(&t_loc));    fprintf(psfile,"%%%%Pages: 1\n");    fprintf(psfile,"%%%%BoundingBox:       0 0 %d %d\n",int(width*s),int(height*s));    fprintf(psfile,"%%%%EndComments\n");    fprintf(psfile," /L {newpath moveto lineto stroke} def\n");    fprintf(psfile," /C {setrgbcolor} def\n");    fprintf(psfile," /rec {newpath 4 copy 8 1 roll moveto 3 -1 roll lineto 4 2 roll exch lineto lineto closepath} def\n");    fprintf(psfile," %f %f  scale \n",s,s);    fprintf(psfile," 0 %d 0 %d rec clip\n",int(width),int(height));    fprintf(psfile," /Helvetica findfont 10 scalefont setfont\n");    fprintf(psfile," /S {moveto show} def\n");    fprintf(psfile," /bF  { mark} def \n");    fprintf(psfile," /eF {newpath moveto counttomark 2 idiv {lineto} repeat closepath  fill cleartomark} def\n");    fprintf(psfile," /P { /yy exch def /xx exch def   xx xx 1 add yy yy 1 add  rec  fill } def\n");    fprintf(psfile," 1 setlinewidth\n");  }  else     cerr << " Err openning postscript file " << fps << endl;}void closePS(void){  if(psfile_save) {    fprintf(psfile_save,"showpage\n");    fclose(psfile_save);  }  psfile_save=0;  psfile=0;} void coutmode(short i)  {}// bof bof ---  float  GetHeigthFont(){   int dir,asc,desc,k;  XCharStruct overall;  XTextExtents(font_info,"gML",3,&dir,&asc,&desc,&overall);   return (asc+desc)*(0.9/echy);}  void Commentaire(const char * c)    {  if(psfile)   {    fprintf(psfile,"%% %s\n",c);   }  };  void NoirEtBlanc(int NB)  {    if(NB) LastColor=1;    else LastColor=ncolortable?ncolortable:2;  }   void MettreDansPostScript(int in)   {     if(in)  psfile=psfile_save;          else   psfile=0;   }static void     FillRect(float x0,float y0, float x1, float y1) {     float r[8];     r[0]=x0;r[1]=y0;     r[2]=x1;r[3]=y0;     r[4]=x1;r[5]=y1;     r[6]=x0;r[7]=y1;     fillpoly(4,r); }int PutLevel(int lineno, float xf, int col){  float xmin,xmax,ymin,ymax;  getcadre(xmin,xmax,ymin,ymax);  float xleft = xmax - (xmax-xmin)*0.1;  float ytop  = ymax;  float ydelta = (ymax-ymin)/40;  ydelta=GetHeigthFont();  xleft = xmax - 6*ydelta;    ytop -= ydelta*(col+2);  couleur(col);  FillRect(xleft+ydelta/8.,ytop+ydelta/8.,xleft+ydelta*7./8.,ytop+ydelta*7./8.);  rmoveto(xleft+ydelta*1.4,ytop+ydelta/4);  char buf[30];  sprintf(buf,"%g",xf);  couleur(1);  plotstring(buf);   return lineno;} void ShowHelp(const char * s,int k){  if(k) {    MettreDansPostScript(0);    couleur(1);    float xmin,xmax,ymin,ymax;    getcadre(xmin,xmax,ymin,ymax);    rmoveto(xmin+(xmax-xmin)/100,ymax-(k)*(ymax-ymin)/30);    plotstring(s);    MettreDansPostScript(1);       //  couleur(1);	  }}  void setgrey(bool gg ){grey=gg;}  int getgrey(){ return grey;}class Grid;void SaveMesh(Grid &t){}void SavePlot(int D, Grid& t, double *f){}void SavePlot(int D, Grid& t, float *f){}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -