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

📄 world.cc

📁 神经网络和遗传算法组合应用
💻 CC
📖 第 1 页 / 共 2 页
字号:
               2*radius,2*radius,               0,360*64);  gdk_threads_leave();}void gui_drawLight(int x, int y, int radius){  gdk_threads_enter();  gdk_gc_set_foreground(pen_simArea,			pal_simArea[GUI_YELLOW]			);  gdk_draw_arc(bg_simArea,               pen_simArea,               0,               x-radius,y-radius,               2*radius,2*radius,               0,360*64);  gdk_threads_leave();}void gui_redrawWorld(void){  sem_post(&simArea_S);  sem_wait(&simAreaUpdate_S);}void gui_drawBG(){  gdk_threads_enter();  gdk_draw_pixmap(bb_simArea,		  blit_simArea,		  bg_simArea,		  0,0,0,0,		  sim_area_x_size,sim_area_y_size);  gdk_threads_leave();}void gui_clearSensor(void){  /*  if(sensorAreaVisible){    tgiSetCurrent(sensorArea);    tgiClear(GUI_WHITE);    tgiSetCurrent(simArea);    }*/}void gui_drawSensor(int sensor, int time, double value, int color){  /*  int offset;  if(sensorAreaVisible){    value = value * 0.9;    if(sensor >= 0 && sensor < 8){      tgiSetCurrent(sensorArea);      tgiSetColour(GUI_WHITE);      offset=(int)((sensor+1)*sensorHeight);      gdk_draw_line(bb_simArea,pen_simArea,time,offset,time,(int)(offset-sensorHeight));      tgiSetColour(color%GUI_COLORS + 1);      gdk_draw_line(bb_simArea,pen_simArea,time,offset,time,(int)(offset-sensorHeight*value));      tgiSetCurrent(simArea);    }    }*/}void gui_drawSensorMarker(int time){  /*  if(sensorAreaVisible){    tgiSetCurrent(sensorArea);    tgiSetColour(GUI_WHITE);    gdk_draw_line(bb_simArea,pen_simArea,time,0,time,nrOfSensors*sensorHeight);    tgiSetCurrent(simArea);    }*/}void gui_redrawSensors(void){  /*if(sensorAreaVisible){    tgiSetCurrent(sensorArea);    tgiShow();    tgiSetCurrent(simArea);    }*/}/*   Simple primitives for drawing to the screen */static struct Window *_windowList = 0;void gui_on_expose_event(GtkWidget *w,			 GdkEventExpose *event,			 gpointer window){  Window *win;  win = (Window*)window;  g_assert(win != NULL);  printf("%d,%d \n",win->w,win->h);  gdk_draw_pixmap(GTK_WIDGET(win->da)->window,		  win->pen,		  win->bb,		  0,0,		  0,0,		  -1,-1);}Window *gui_window_new(gint width, gint height,const gchar *title){  Window *cur;  GtkWidget *box;  static gint boxId=0;  gchar nbox[10];  g_return_val_if_fail((width > 0 && height > 0),NULL);  if(!_windowList){    _windowList = (Window*) g_malloc(sizeof(Window));    g_assert(_windowList != NULL);    _windowList->next = NULL;    cur = _windowList;  }  else{    cur = _windowList;    while(cur->next)      cur = cur->next;    /* cur->next points at last window */    cur->next = (Window*)g_malloc(sizeof(Window));    g_assert(cur->next != NULL);    cur = cur->next;    cur->next = NULL;  }  cur->w = width;  cur->h = height;  cur->bb = NULL;  gdk_threads_enter();  cur->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);  gtk_window_set_title(GTK_WINDOW(cur->window),title);  gtk_window_set_policy(GTK_WINDOW(cur->window),			FALSE,			FALSE,			TRUE);  box = gtk_hbox_new(TRUE,0);  gtk_widget_ref(box);  gtk_container_add(GTK_CONTAINER(cur->window),box);  g_snprintf(nbox,10,"hbox%d",boxId++);  gtk_object_set_data_full(GTK_OBJECT(cur->window),			   nbox,			   box,			   (GtkDestroyNotify)gtk_widget_unref);  gtk_widget_show(box);  cur->da = GTK_DRAWING_AREA(gtk_drawing_area_new());  gtk_widget_ref(GTK_WIDGET(cur->da));  gtk_drawing_area_size(cur->da,			width,height);  gtk_object_set_data_full(GTK_OBJECT(cur->window),			   title,			   cur->da,			   (GtkDestroyNotify)gtk_widget_unref);  gtk_box_pack_start(GTK_BOX(box),		     GTK_WIDGET(cur->da),		     TRUE,		     TRUE,		     0);  gtk_signal_connect(GTK_OBJECT(cur->da),		     "expose_event",		     GTK_SIGNAL_FUNC(gui_on_expose_event),		     (gpointer)cur		     );  gtk_widget_show(GTK_WIDGET(cur->da));  gtk_widget_show(cur->window);  cur->bb = gdk_pixmap_new(GTK_WIDGET(cur->da)->window,			   width,height,			   -1			   );  cur->bb = gdk_pixmap_ref(cur->bb);  cur->cm = gdk_window_get_colormap(GTK_WIDGET(cur->da)->window);  cur->palette = (GdkColor**) g_malloc(sizeof(GdkColor*)*256);  for(int i=0; i < 256; i++){    cur->palette[i] = (GdkColor*)g_malloc(sizeof(GdkColor));    cur->palette[i]->red   = 0x0101 * i;    cur->palette[i]->green = 0x0101 * i;    cur->palette[i]->blue  = 0x0101 * i;    gdk_colormap_alloc_color(cur->cm,			     cur->palette[i],			     1, /* writeable ->  private */  			     1);/* bestmatch */  }  cur->pen = gdk_gc_new((GdkWindow*)cur->bb);  cur->pen = gdk_gc_ref(cur->pen);  gdk_gc_set_foreground(cur->pen,			cur->palette[255]);  gdk_threads_leave();  return(cur);}void gui_window_palette_change(Window *win,			       gint color,			       guint red,			       guint green,			       guint blue){  g_assert(color > -1 && color < 256);  win->palette[color]->red = red;  win->palette[color]->green = green;  win->palette[color]->blue = blue;  gdk_threads_enter();  gdk_color_change(win->cm,		   win->palette[color]);  gdk_threads_leave();}void gui_window_set_color(Window *win,			  gint color){  g_assert(color > -1 && color < 256);  gdk_threads_enter();  gdk_gc_set_foreground(win->pen,			win->palette[color]);  gdk_threads_leave();}void gui_window_line(Window *win,		     gint x1, gint y1,		     gint x2, gint y2){  gdk_threads_enter();  gdk_draw_line(win->bb,		win->pen,		x1,y1,		x2,y2);  gdk_threads_leave();}void gui_window_plot(Window *win,		     gint x, gint y){  gdk_threads_enter();  gdk_draw_point(win->bb,		 win->pen,		 x,y);  gdk_threads_leave();}void gui_window_circle(Window *win,		       gint x, gint y,		       gint radius,		       gint filled){  gdk_threads_enter();  gdk_draw_arc(win->bb,	       win->pen,	       filled,	       x-radius,y-radius,	       radius << 1, radius << 1,	       0, 64 * 360);  gdk_threads_leave();}void gui_window_arc(Window *win,		    gint x, gint y,		    gint radius,		    gint filled,		    gint startAngle,		    gint endAngle){  gdk_threads_enter();  gdk_draw_arc(win->bb,	       win->pen,	       filled,	       x-radius,y-radius,	       radius << 1, radius << 1,	       startAngle << 6, endAngle << 6);  gdk_threads_leave();}void gui_window_rectangle(Window *win,			  gint x1, gint y1,			  gint x2, gint y2,			  gint filled){  if(x1 > x2){    x1 ^= x2;    x2 ^= x1;    x1 ^= x2;  }  if(y1 > y2){    y1 ^= y2;    y2 ^= y1;    y1 ^= y2;  }  gdk_threads_enter();  gdk_draw_rectangle(win->bb,		     win->pen,		     filled,		     x1,y1,		     x2-x1,y2-y1);  gdk_threads_leave();}void gui_window_clear(Window *win,		      gint color){  gui_window_set_color(win,color);  gui_window_rectangle(win,		       0,0,		       win->w,win->h,		       1);}void gui_window_flush(Window *win){  gdk_threads_enter();  gtk_widget_draw(GTK_WIDGET(win->da),NULL);  gdk_threads_leave();}

⌨️ 快捷键说明

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