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

📄 chaos_analyser.c

📁 混沌分析工具
💻 C
📖 第 1 页 / 共 5 页
字号:
	{ 0,   0,   0}, /* black */    };  extern void exit();  DATA=dmatrix(0,50001,0,8);  LYA_EXP=dmatrix(0,10001,1,8);      set_angles();  xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);  cms = (Cms) xv_create((Frame)NULL, CMS,        CMS_SIZE, 6,        CMS_COLORS, colors,        NULL);    /************** Main Frame and Canvas ******************************/    frame = (Frame)xv_create((Frame)NULL, FRAME,			     FRAME_LABEL, "Signal Analysis tool",			     NULL);  closed_image = (Server_image)xv_create((Frame)NULL, SERVER_IMAGE,	SERVER_IMAGE_DEPTH,     1,	XV_WIDTH,               lor_icon_width,	XV_HEIGHT,              lor_icon_height,	SERVER_IMAGE_X_BITS,    lor_icon_bits,	NULL);  icon=(Icon)xv_create((Frame)NULL, ICON,	ICON_IMAGE,             closed_image,	XV_WIDTH,               lor_icon_width,	XV_HEIGHT,              lor_icon_height,	       	XV_X,                   100,	XV_Y,                   100,	NULL);  xv_set(frame,FRAME_ICON,icon,NULL);  canvas = (Canvas)xv_create(frame, CANVAS,        XV_WIDTH,               500,        XV_HEIGHT,              500,        CANVAS_X_PAINT_WINDOW,  TRUE,        CANVAS_REPAINT_PROC,    repaint_proc,	WIN_CMS,                cms,        NULL);  canvas_win = (Window)xv_get(canvas_paint_window(canvas), XV_XID);  panel = (Panel)xv_create(frame, PANEL,        PANEL_LAYOUT,           PANEL_VERTICAL,        NULL);  xv_create(panel, PANEL_BUTTON,        PANEL_LABEL_STRING,     "Quit",        XV_X,                   20,        XV_Y,                   5,        PANEL_NOTIFY_PROC,      exit,        NULL);  FR_BUT=(Panel_item)xv_create(panel, PANEL_BUTTON,        PANEL_LABEL_STRING,     "Freeze",        PANEL_NOTIFY_PROC,      freeze,	XV_Y,                   5,	XV_X,                   210,        NULL);  xv_create(panel, PANEL_BUTTON,        PANEL_LABEL_STRING,     "Step",        PANEL_NOTIFY_PROC,      step,	XV_Y,                   5,	XV_X,                   290,        NULL);  xv_create(panel, PANEL_BUTTON,        PANEL_LABEL_STRING,     "Reverse Direction",        PANEL_NOTIFY_PROC,      reverse,	XV_Y,                   5,	XV_X,                   80,        NULL);  xv_create(panel, PANEL_BUTTON,        PANEL_LABEL_STRING,     "Options/Utilities",        PANEL_NOTIFY_PROC,      options,	XV_Y,                   40,	XV_X,                   30, 	NULL);  AXES_ON_OFF=(Panel_item)xv_create(panel, PANEL_BUTTON,        PANEL_LABEL_STRING,     "Axes off",        PANEL_NOTIFY_PROC,      show_axes,	XV_Y,                   40,	XV_X,                   175, 	NULL);  xv_create(panel, PANEL_BUTTON,        PANEL_LABEL_STRING,     "Print",        PANEL_NOTIFY_PROC,      main_print,	XV_Y,                   40,	XV_X,                   280, 	NULL);   (Panel_item)xv_create(panel, PANEL_TEXT,        PANEL_LABEL_STRING,     "New File : ",        PANEL_VALUE,            NULL,	PANEL_VALUE_DISPLAY_LENGTH, 30,	PANEL_VALUE_STORED_LENGTH, 50,	PANEL_NOTIFY_PROC,      get_name,        NULL);  M_SLIDER=(Panel_item)xv_create(panel, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,	PANEL_LABEL_STRING,     "Time delay",        PANEL_VALUE,            10,        PANEL_MAX_VALUE,        100,        PANEL_NOTIFY_PROC,      m_delay,        NULL);  NUM_POINTS=(Panel_item)xv_create(panel, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,           PANEL_LABEL_STRING,     "Number of Points ",        PANEL_VALUE,            5000,        PANEL_MAX_VALUE,        50000,        PANEL_NOTIFY_PROC,      number_points,        NULL);  POS_SLIDER=(Panel_item)xv_create(panel, PANEL_SLIDER,        PANEL_LABEL_WIDTH,      LABEL_WIDTH,	PANEL_LABEL_STRING,     "Time Position ",        PANEL_VALUE,            0,	PANEL_SHOW_VALUE,       FALSE,        PANEL_MAX_VALUE,        50000,        PANEL_NOTIFY_PROC,      time_pos,        NULL);   xv_create(panel, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,            PANEL_LABEL_STRING,     "Magnification (%)",        PANEL_VALUE,            100,        PANEL_MAX_VALUE,        200,        PANEL_NOTIFY_PROC,      adjust_size,        NULL);   xv_create(panel, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,        PANEL_LABEL_STRING,     "Section Length",        PANEL_VALUE,            150,        PANEL_MAX_VALUE,        1000,        PANEL_NOTIFY_PROC,      adjust_length,        NULL);  xv_create(panel, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,           PANEL_LABEL_STRING,     "Ghost length",        PANEL_VALUE,            200,        PANEL_MAX_VALUE,        1000,	PANEL_NOTIFY_PROC,      adjust_ghost,        NULL);  xv_create(panel, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,        PANEL_LABEL_STRING,     "Increment Step",        PANEL_VALUE,            1,        PANEL_MAX_VALUE,        120,	PANEL_NOTIFY_PROC,      adjust_step,        NULL);  SPEED=(Panel_item)xv_create(panel, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,            PANEL_LABEL_STRING,     "Animate speed",        PANEL_VALUE,            0,        PANEL_MAX_VALUE,        120,        PANEL_NOTIFY_PROC,      adjust_speed,        NULL);  xv_create(panel, PANEL_SLIDER,        PANEL_LABEL_WIDTH,      LABEL_WIDTH,           PANEL_LABEL_STRING,     "angle 1 ",        PANEL_VALUE,            45,        PANEL_MAX_VALUE,        360,        PANEL_NOTIFY_PROC,      adjust_alpha,        NULL);  xv_create(panel, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,           PANEL_LABEL_STRING,     "angle 2 ",        PANEL_VALUE,            0,        PANEL_MAX_VALUE,        360,        PANEL_NOTIFY_PROC,      adjust_beta,        NULL);  xv_create(panel, PANEL_SLIDER,	    PANEL_LABEL_WIDTH,      LABEL_WIDTH,	    PANEL_LABEL_STRING,     "angle 3 ",	    PANEL_VALUE,            325,	    PANEL_MAX_VALUE,        360,	    PANEL_NOTIFY_PROC,      adjust_gamma,	    NULL);  window_fit(panel);  window_fit(frame);   /****************** Error messages frame ****************************/    mes_frame = (Frame)xv_create(frame,FRAME,				 NULL);  message_panel=(Panel)xv_create(mes_frame, PANEL,        PANEL_LAYOUT,           PANEL_VERTICAL,	NULL);  xv_create(message_panel,PANEL_MESSAGE,	    PANEL_LABEL_STRING, "Cannot find file ... try again !",	    NULL);  xv_create(message_panel, PANEL_BUTTON,	PANEL_LABEL_STRING,     "OK",        PANEL_NOTIFY_PROC,      message_off,        NULL);  window_fit(message_panel);  window_fit(mes_frame); /****************** Screen print frame ****************************/  print_frame = (Frame)xv_create(frame,FRAME,				 FRAME_LABEL,"Printing tool",				 NULL);  print_panel=(Panel)xv_create(print_frame, PANEL,        PANEL_LAYOUT,           PANEL_VERTICAL,	NULL);  xv_create(print_panel, PANEL_TEXT,        PANEL_LABEL_STRING,     "Output File : ",        PANEL_VALUE,            PRINT_NAME,	PANEL_VALUE_DISPLAY_LENGTH, 30,	PANEL_VALUE_STORED_LENGTH, 50,	PANEL_NOTIFY_PROC,      get_print_name,        NULL);  PRINT_MESSAGE=(Panel_item)xv_create(print_panel,PANEL_MESSAGE,	    PANEL_LABEL_STRING, NULL,	    NULL);  window_fit(print_panel);  window_fit(print_frame);    /**************** Options / Utilities Frame ***********************/    options_frame = (Frame)xv_create(frame,FRAME,				   FRAME_LABEL,"Options",				   NULL);  panel_options = (Panel)xv_create(options_frame, PANEL,        PANEL_LAYOUT,           PANEL_VERTICAL,	NULL);  SVD_ONOFF=(Panel_item)xv_create(panel_options,PANEL_CHECK_BOX,	PANEL_LAYOUT,           PANEL_HORIZONTAL,	PANEL_CHOOSE_ONE,       TRUE,	PANEL_LABEL_STRING,     "SVD Reduction",	PANEL_CHOICE_STRINGS,   "On","Off",NULL,	PANEL_NOTIFY_PROC,      svd_on_off,	PANEL_VALUE,            1, 	NULL);  xv_create(panel_options,PANEL_CHECK_BOX,	PANEL_LAYOUT,           PANEL_HORIZONTAL,	PANEL_CHOOSE_ONE,       TRUE,	PANEL_LABEL_STRING,     "Time Domain Display",	PANEL_CHOICE_STRINGS,   "On","Off",NULL,	PANEL_NOTIFY_PROC,      tdomain_on_off,	PANEL_VALUE,            1,	NULL);  xv_create(panel_options,PANEL_CHECK_BOX,	PANEL_LAYOUT,           PANEL_HORIZONTAL,	PANEL_CHOOSE_ONE,       TRUE,	PANEL_LABEL_STRING,     "Mutual Information",	PANEL_CHOICE_STRINGS,   "On","Off",NULL,	PANEL_NOTIFY_PROC,      mut_on_off,	PANEL_VALUE,            1,	NULL);  xv_create(panel_options,PANEL_CHECK_BOX,	PANEL_LAYOUT,           PANEL_HORIZONTAL,	PANEL_CHOOSE_ONE,       TRUE,	PANEL_LABEL_STRING,     "Local SVD Display",	PANEL_CHOICE_STRINGS,   "On","Off",NULL,	PANEL_NOTIFY_PROC,      lsvd_on_off,	PANEL_VALUE,            1,	NULL);  xv_create(panel_options,PANEL_CHECK_BOX,	PANEL_LAYOUT,           PANEL_HORIZONTAL,	PANEL_CHOOSE_ONE,       TRUE,	PANEL_LABEL_STRING,     "Poincare",	PANEL_CHOICE_STRINGS,   "On","Off",NULL,	PANEL_NOTIFY_PROC,      poin_on_off,	PANEL_VALUE,            1,	NULL);  xv_create(panel_options,PANEL_CHECK_BOX,	PANEL_LAYOUT,           PANEL_HORIZONTAL,	PANEL_CHOOSE_ONE,       TRUE,	PANEL_LABEL_STRING,     "Lyapunov exps",	PANEL_CHOICE_STRINGS,   "On","Off",NULL,	PANEL_NOTIFY_PROC,      lya_on_off,	PANEL_VALUE,            1,	NULL);  window_fit(panel_options);  window_fit(options_frame);  /***************** Time Domain  Display ****************************/  time_frame = (Frame)xv_create(frame,FRAME,			       FRAME_LABEL, "Time Domain",			       NULL);  canvas_time = (Canvas)xv_create(time_frame, CANVAS,				  XV_WIDTH,               500,				  XV_HEIGHT,              100,				  CANVAS_X_PAINT_WINDOW,  TRUE,				  CANVAS_REPAINT_PROC,    time_paint_proc,				  WIN_CMS,                cms,				  NULL);  canvas_win_time=(Window)xv_get(canvas_paint_window(canvas_time), XV_XID);  panel_time = (Panel)xv_create(time_frame, PANEL,        PANEL_LAYOUT,           PANEL_VERTICAL,	NULL);  xv_create(panel_time, PANEL_BUTTON,	PANEL_LABEL_STRING,     "Zoom Out",        PANEL_NOTIFY_PROC,      zoom_out,        NULL);  xv_create(panel_time, PANEL_BUTTON,        PANEL_LABEL_STRING,     "Zoom In",        PANEL_NOTIFY_PROC,      zoom_in,        NULL);  window_fit(panel_time);  window_fit(time_frame);    /***************** local Singular Value Frame ***********************/  lsvd_frame = (Frame)xv_create(frame,FRAME,				FRAME_LABEL,"Local SVD Display",				NULL);  canvas_lsvd = (Canvas)xv_create(lsvd_frame, CANVAS,				  XV_WIDTH,               300,				  XV_HEIGHT,              300,				  CANVAS_X_PAINT_WINDOW,  TRUE,				  CANVAS_REPAINT_PROC,    lsvd_paint_proc,				  WIN_CMS,                cms,				  NULL);  canvas_win_lsvd=(Window)xv_get(canvas_paint_window(canvas_lsvd), XV_XID);  panel_lsvd = (Panel)xv_create(lsvd_frame, PANEL,        PANEL_LAYOUT,           PANEL_VERTICAL,        NULL);  xv_create(panel_lsvd, PANEL_NUMERIC_TEXT,	PANEL_LABEL_STRING,     "Iterations",        PANEL_VALUE_DISPLAY_LENGTH, 5,       	PANEL_MAX_VALUE,        50,	PANEL_VALUE,            20,        PANEL_NOTIFY_PROC,      lsvd_num_adjust,        NULL);  xv_create(panel_lsvd, PANEL_TEXT,        PANEL_LABEL_STRING,     "Start Radius",	PANEL_VALUE_DISPLAY_LENGTH, 7,        PANEL_VALUE,            "100",        PANEL_NOTIFY_PROC,      lsvd_st_rad,	  NULL);  xv_create(panel_lsvd, PANEL_NUMERIC_TEXT,        PANEL_LABEL_STRING,     "Section length",	PANEL_MAX_VALUE,        25000,        PANEL_VALUE_DISPLAY_LENGTH, 5,        PANEL_VALUE,            1000,        PANEL_NOTIFY_PROC,      lsvd_length,        NULL);    xv_create(panel_lsvd, PANEL_BUTTON,	PANEL_LABEL_STRING,     "Accept Setup",        PANEL_NOTIFY_PROC,      lsvd_accept,        NULL);  xv_create(panel_lsvd, PANEL_BUTTON,        PANEL_LABEL_STRING,     "Print",        PANEL_NOTIFY_PROC,      lsvd_print,	NULL);   window_fit(panel_lsvd);  window_fit(lsvd_frame);   /***************  Mutual Information frame ***********************/  mut_frame = (Frame)xv_create(frame,FRAME,				FRAME_LABEL,"Mutual Information",				NULL);  canvas_mut = (Canvas)xv_create(mut_frame, CANVAS,				  XV_WIDTH,               300,				  XV_HEIGHT,              300,				  CANVAS_X_PAINT_WINDOW,  TRUE,				  CANVAS_REPAINT_PROC,    mut_paint_proc,				  WIN_CMS,                cms,				  NULL);  canvas_win_mut=(Window)xv_get(canvas_paint_window(canvas_mut), XV_XID);  panel_mut = (Panel)xv_create(mut_frame, PANEL,        PANEL_LAYOUT,           PANEL_VERTICAL,        NULL);  xv_create(panel_mut, PANEL_NUMERIC_TEXT,	PANEL_LABEL_STRING,     "Max delay",        PANEL_VALUE_DISPLAY_LENGTH, 5,       	PANEL_MAX_VALUE,        200,	PANEL_VALUE,            100,        PANEL_NOTIFY_PROC,      mut_num_adjust,        NULL);  xv_create(panel_mut, PANEL_TEXT,        PANEL_LABEL_STRING,     "Radius",	PANEL_VALUE_DISPLAY_LENGTH, 7,        PANEL_VALUE,            "100",        PANEL_NOTIFY_PROC,      mut_st_rad,	  NULL);  xv_create(panel_mut, PANEL_NUMERIC_TEXT,        PANEL_LABEL_STRING,     "Section length",	PANEL_MAX_VALUE,        25000,        PANEL_VALUE_DISPLAY_LENGTH, 5,        PANEL_VALUE,            1000,	PANEL_NOTIFY_PROC,      mut_length,        NULL);    xv_create(panel_mut, PANEL_BUTTON,	PANEL_LABEL_STRING,     "Accept Setup",        PANEL_NOTIFY_PROC,      mut_accept,        NULL);  xv_create(panel_mut, PANEL_BUTTON,        PANEL_LABEL_STRING,     "Print",        PANEL_NOTIFY_PROC,      mut_print,	NULL);   window_fit(panel_mut);  window_fit(mut_frame);     /***************  Poincare section frame  ************************/  poin_frame = (Frame)xv_create(frame,FRAME,			       FRAME_LABEL,"Poincare section",			       NULL);  canvas_poin = (Canvas)xv_create(poin_frame, CANVAS,		XV_WIDTH,               300,		XV_HEIGHT,              300,	        CANVAS_X_PAINT_WINDOW,  TRUE,	        CANVAS_REPAINT_PROC,    poin_paint_proc,       	        WIN_CMS,                cms,                NULL);  canvas_win_poin=(Window)xv_get(canvas_paint_window(canvas_poin), XV_XID);  window_fit(poin_frame);    /***************** Lyapunov exponents Frame ***********************/  lya_frame = (Frame)xv_create(frame,FRAME,				FRAME_LABEL,"Lyapunov exponents Display",				NULL);  canvas_lya = (Canvas)xv_create(lya_frame, CANVAS,				  XV_WIDTH,               425,				  XV_HEIGHT,              425,				  CANVAS_X_PAINT_WINDOW,  TRUE,				  CANVAS_REPAINT_PROC,    lya_setup_proc,				  WIN_CMS,                cms,				  NULL);  canvas_win_lya=(Window)xv_get(canvas_paint_window(canvas_lya), XV_XID);  panel_lya = (Panel)xv_create(lya_frame, PANEL,        PANEL_LAYOUT,           PANEL_VERTICAL,        NULL);  LYA_EMBEDDING=(Panel_item)xv_create(panel_lya,PANEL_CHECK_BOX,	PANEL_LAYOUT,           PANEL_HORIZONTAL,	PANEL_CHOOSE_ONE,       TRUE,	PANEL_LABEL_STRING,     "Embedding",	PANEL_CHOICE_STRINGS,   "time delay","svd",NULL,	PANEL_NOTIFY_PROC,      lya_embed_choice,	PANEL_VALUE,            0,	NULL);  SVD_M_SLIDER=(Panel_item)xv_create(panel_lya, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,            PANEL_LABEL_STRING,     "Time Delay",         PANEL_VALUE,            10,        PANEL_MAX_VALUE,        100,	PANEL_INACTIVE,         FALSE,        PANEL_NOTIFY_PROC,      svd_m_window,        NULL);  xv_create(panel_lya, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,            PANEL_LABEL_STRING,     "Global Dim",        PANEL_VALUE,            3,        PANEL_MAX_VALUE,        10,        PANEL_NOTIFY_PROC,      adjust_globdim,        NULL);   xv_create(panel_lya, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,            PANEL_LABEL_STRING,     "Local Dim",        PANEL_VALUE,            3,        PANEL_MAX_VALUE,        10,        PANEL_NOTIFY_PROC,      adjust_locdim,        NULL);  xv_create(panel_lya, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,            PANEL_LABEL_STRING,     "Reinit",        PANEL_VALUE,            5,        PANEL_MAX_VALUE,        50,        PANEL_NOTIFY_PROC,      adjust_reinit,        NULL);   xv_create(panel_lya, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,            PANEL_LABEL_STRING,     "B vectors",        PANEL_VALUE,            20,        PANEL_MAX_VALUE,        300,        PANEL_NOTIFY_PROC,      adjust_B,        NULL);  xv_create(panel_lya, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,            PANEL_LABEL_STRING,     "Averages",        PANEL_VALUE,            1,        PANEL_MAX_VALUE,        10,        PANEL_NOTIFY_PROC,      adjust_average,	NULL);   xv_create(panel_lya, PANEL_SLIDER,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,            PANEL_LABEL_STRING,     "Evolve Length",        PANEL_VALUE,            1000,        PANEL_MAX_VALUE,        10000,        PANEL_NOTIFY_PROC,      adjust_evolve,	NULL);  xv_create(panel_lya, PANEL_TEXT,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,            PANEL_LABEL_STRING,     "Tau",	PANEL_VALUE_DISPLAY_LENGTH, 7,        PANEL_VALUE,            "1",        PANEL_NOTIFY_PROC,      adjust_tau,	  NULL);   xv_create(panel_lya, PANEL_TEXT,	PANEL_LABEL_WIDTH,      LABEL_WIDTH,             PANEL_LABEL_STRING,     "Draw Line",	PANEL_VALUE_DISPLAY_LENGTH, 7,        PANEL_VALUE,            NULL,        PANEL_NOTIFY_PROC,      lya_drawline,	  NULL);  xv_create(panel_lya, PANEL_BUTTON,	PANEL_LABEL_STRING,     "Re-embed data",        PANEL_NOTIFY_PROC,      lya_embed,	XV_Y,                   350,	XV_X,                   75,        NULL);  LYA_START_STOP=(Panel_item)xv_create(panel_lya, PANEL_BUTTON,	PANEL_LABEL_STRING,     "Start",        PANEL_NOTIFY_PROC,      lya_accept,	XV_Y,                   350,	XV_X,                   208,			               NULL);  xv_create(panel_lya, PANEL_BUTTON,	PANEL_LABEL_STRING,     "Print",        PANEL_NOTIFY_PROC

⌨️ 快捷键说明

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