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

📄 gtkseisviewgl_test.c

📁 segy 显示程序!希望能给正在做这部分朋友提供一部分资料
💻 C
📖 第 1 页 / 共 2 页
字号:
    gint layers_num = 5, i;    gfloat h[] = { 600, 400, 600, 500, 300 };    gfloat vp[] = { 1500, 1900, 2200, 2000, 2500 };    gfloat ro[] = { 1.9, 2.1, 2.2, 2.2, 2.3 };    gfloat data[trace_num * samples_num];    gfloat data_display[trace_num * samples_num];    GtkWidget *window, *seis_view_gl;    GtkWidget *shared_window, *shared_seis_view_gl;    GdkColor sample_color;    GSeisColor min_color, max_color;    GSeisPaletteDef palette_def;    GArray *palette_array_def;    GSeisPalette *palette;    GSeisViewToolMotion *motion_tool;    GSeisViewToolHighlight *hlight_tool;    GSeisViewToolScale *scale_tool;    GSeisViewToolMagnify *magnify_tool;    GSeisViewAxisZ *z_axis;    GSeisViewAxisTraces *traces_axis;    GArray *traces_nums;#ifdef GTK_SEIS_VIEW_GL_THREADED    g_thread_init (NULL);    gdk_threads_init ();    gdk_threads_enter ();#endif    gtk_init (&argc, &argv);    gdk_gl_init (&argc, &argv);    g_printf ("Calculating synthetic record...\n");    calculate_seismogram (data, trace_num, profile_length, start_offset, samples_num, dt, layers_num, vp, h, ro);    g_printf ("Done!\n");    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);    gtk_window_set_title (GTK_WINDOW (window), "Synthetic 2D seismic data rendering sample");#ifdef GTK_SEIS_VIEW_GL_THREADED    seis_view_gl = gtk_seis_view_gl_new_threaded ();#else    seis_view_gl = gtk_seis_view_gl_new ();#endif    gtk_widget_set_size_request (seis_view_gl, 600, 400);    gtk_container_add (GTK_CONTAINER (window), seis_view_gl);    gtk_widget_show (seis_view_gl);      gtk_widget_show (window);    palette_array_def = g_array_new (FALSE, FALSE, sizeof (GSeisPaletteDef));    palette_def.interpolate = TRUE;    palette_def.scale_position = 0.f;    gdk_color_parse ("blue", &sample_color);    palette_def.color.red = sample_color.red;    palette_def.color.green = sample_color.green;    palette_def.color.blue = sample_color.blue;    min_color.red = sample_color.red;    min_color.green = sample_color.green;    min_color.blue = sample_color.blue;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 0.5f;    gdk_color_parse ("white", &sample_color);    palette_def.color.red = sample_color.red;    palette_def.color.green = sample_color.green;    palette_def.color.blue = sample_color.blue;    g_array_append_val (palette_array_def, palette_def);    palette_def.scale_position = 1.f;    gdk_color_parse ("red", &sample_color);    palette_def.color.red = sample_color.red;    palette_def.color.green = sample_color.green;    palette_def.color.blue = sample_color.blue;    max_color.red = sample_color.red;    max_color.green = sample_color.green;    max_color.blue = sample_color.blue;    g_array_append_val (palette_array_def, palette_def);/*  palette = g_seis_palette_new_by_min_max (&min_color, &max_color, "BlueRed");*//*  palette = g_seis_palette_new_by_array (palette_array_def, "BlueWhiteRed");*/    palette = g_seis_palette_new_by_array (NULL, NULL);    gtk_seis_view_gl_set_palette (GTK_SEIS_VIEW_GL (seis_view_gl), palette);    g_array_free (palette_array_def, TRUE);    g_object_unref (G_OBJECT (palette));    gtk_seis_view_gl_set_display_mode (GTK_SEIS_VIEW_GL (seis_view_gl), GTK_SEIS_VIEW_VA | GTK_SEIS_VIEW_VD | GTK_SEIS_VIEW_WIGGLE);    motion_tool = g_seis_view_tool_motion_new ();    hlight_tool = g_seis_view_tool_highlight_new ();    scale_tool = g_seis_view_tool_scale_new ();    magnify_tool = g_seis_view_tool_magnify_new ();    g_seis_view_tool_set_alt_tool1 (G_SEIS_VIEW_TOOL (motion_tool), G_SEIS_VIEW_TOOL (hlight_tool));    g_seis_view_tool_set_alt_tool2 (G_SEIS_VIEW_TOOL (motion_tool), G_SEIS_VIEW_TOOL (scale_tool));    g_seis_view_tool_set_alt_tool3 (G_SEIS_VIEW_TOOL (motion_tool), G_SEIS_VIEW_TOOL (magnify_tool));    gtk_seis_view_gl_set_active_tool (GTK_SEIS_VIEW_GL (seis_view_gl), G_SEIS_VIEW_TOOL (motion_tool));    g_object_unref (G_OBJECT (motion_tool));    g_object_unref (G_OBJECT (hlight_tool));    g_object_unref (G_OBJECT (scale_tool));    g_object_unref (G_OBJECT (magnify_tool));    /* Vertical axis */    z_axis = g_seis_view_axis_z_new ();    g_seis_view_axis_z_set_min_max (z_axis, 0, dt * 1000, samples_num);    g_seis_view_axis_z_set_format (z_axis, G_SEIS_VIEW_AXIS_Z_INTEGER);#ifdef WIN32    g_seis_view_axis_z_set_font (z_axis, "Tahoma 8");#else    g_seis_view_axis_z_set_font (z_axis, "Helvetica 8");#endif    g_seis_view_axis_reshape (G_SEIS_VIEW_AXIS (z_axis), seis_view_gl);    gtk_seis_view_gl_set_axis (GTK_SEIS_VIEW_GL (seis_view_gl), G_SEIS_VIEW_AXIS_LEFT, G_SEIS_VIEW_AXIS (z_axis));    g_object_unref (G_OBJECT (z_axis));    /* Array of values of labels for horizontal axis */    traces_nums = g_array_sized_new (FALSE, FALSE, sizeof (gint32), trace_num);    for (i = 1; i <= trace_num; i++)        g_array_append_val (traces_nums, i);    /* Horizontal axis */    traces_axis = g_seis_view_axis_traces_new ();    g_seis_view_axis_traces_set_values (traces_axis, G_SEIS_VIEW_AXIS_TRACES_INTEGER, traces_nums);#ifdef WIN32    g_seis_view_axis_traces_set_font (traces_axis, "Tahoma 8");#else    g_seis_view_axis_traces_set_font (traces_axis, "Helvetica 8");#endif    g_seis_view_axis_reshape (G_SEIS_VIEW_AXIS (traces_axis), seis_view_gl);    gtk_seis_view_gl_set_axis (GTK_SEIS_VIEW_GL (seis_view_gl), G_SEIS_VIEW_AXIS_TOP, G_SEIS_VIEW_AXIS (traces_axis));    g_object_unref (G_OBJECT (traces_axis));    g_array_free (traces_nums, TRUE);    /* Display everything - wiggles, variable density, variable area */    gtk_seis_view_gl_set_display_mode (GTK_SEIS_VIEW_GL (seis_view_gl), GTK_SEIS_VIEW_VA |                                                                        GTK_SEIS_VIEW_VD |                                                                        GTK_SEIS_VIEW_WIGGLE);    gtk_seis_view_gl_set_va_fill_mode (GTK_SEIS_VIEW_GL (seis_view_gl), GTK_SEIS_VIEW_VA_POSITIVE);/*  gtk_seis_view_gl_set_agc_use (GTK_SEIS_VIEW_GL (seis_view_gl), TRUE, 0.05);    gtk_seis_view_gl_set_minmax_mode (GTK_SEIS_VIEW_GL (seis_view_gl), GTK_SEIS_VIEW_MINMAX_PER_ENSEMBLE);*/    gtk_seis_view_gl_set_data (GTK_SEIS_VIEW_GL (seis_view_gl), data, trace_num, samples_num, data_display);/*    gtk_seis_view_gl_set_highlight_area (GTK_SEIS_VIEW_GL (seis_view_gl), 0.25, 0.5);*//*  g_printf ("Capturing image...\n");    g_signal_connect (G_OBJECT (seis_view_gl), "pixbuf_progress",                     (GCallback)image_progress, NULL);    g_signal_connect (G_OBJECT (seis_view_gl), "pixbuf_rendered",                     (GCallback)image_rendered, NULL);    gtk_seis_view_gl_render_to_pixbuf (GTK_SEIS_VIEW_GL (seis_view_gl), 900, 2500);*/    gtk_signal_connect (GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC (window_close), (gpointer)seis_view_gl);    /* Shared view in another window *//*  shared_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);    gtk_window_set_title (GTK_WINDOW (shared_window), "Shared seismic data view");    shared_seis_view_gl = gtk_seis_view_gl_new_shared (GTK_SEIS_VIEW_GL (seis_view_gl));    gtk_widget_set_size_request (shared_seis_view_gl, 350, 300);    gtk_container_add (GTK_CONTAINER (shared_window), shared_seis_view_gl);    gtk_signal_connect (GTK_OBJECT (shared_window), "delete_event", GTK_SIGNAL_FUNC (shared_window_close),                        (gpointer)shared_seis_view_gl);    g_signal_connect (G_OBJECT (magnify_tool), "magnify_viewport",                      (GCallback)magnify_viewer_area, (gpointer)shared_seis_view_gl);    gtk_widget_show (shared_seis_view_gl);    gtk_widget_show (shared_window);*/    gtk_main ();#ifdef GTK_SEIS_VIEW_GL_THREADED    gdk_threads_leave ();#endif    return (0);}

⌨️ 快捷键说明

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