static void gtk_plot_surface_real_draw (GtkPlotSurface *surface) { GtkWidget *widget; GtkPlot *plot = NULL; GtkPlotData *dataset; GList *list; g_return_if_fail(GTK_IS_PLOT_SURFACE(surface)); dataset = GTK_PLOT_DATA(surface); g_return_if_fail(GTK_PLOT_DATA(dataset)->plot != NULL); g_return_if_fail(GTK_IS_PLOT(GTK_PLOT_DATA(dataset)->plot)); plot = dataset->plot; widget = GTK_WIDGET(plot); gtk_plot_pc_gsave(plot->pc); if(!GTK_WIDGET_DRAWABLE(widget)) return; if(!GTK_WIDGET_VISIBLE(widget)) return; gtk_plot_set_line_attributes(plot, surface->mesh_line); list = surface->dt->triangles; while(list){ GtkPlotDTtriangle *t; t = (GtkPlotDTtriangle *)list->data; GTK_PLOT_SURFACE_CLASS(GTK_OBJECT(surface)->klass)->draw_triangle(surface, t, -1.); list = list->next; } gtk_plot_pc_grestore(plot->pc); }
static void gtk_plot_polar_draw_grids(GtkPlotPolar *polar) { GtkWidget *widget; GtkPlot *plot; gdouble ix, iy; gdouble x1, y1, x2, y2; gdouble width, height, size; gdouble xp, yp; gint ntick; gdouble ox, oy; gdouble rotation; widget = GTK_WIDGET(polar); plot = GTK_PLOT(polar); rotation = polar->rotation; xp = plot->internal_allocation.x; yp = plot->internal_allocation.y; width = plot->internal_allocation.width; height = plot->internal_allocation.height; ox = xp + width / 2.; oy = yp + height / 2.; size = MIN(width, height) / 2.; if(plot->bottom->show_minor_grid) { for(ntick = 0; ntick < plot->bottom->ticks.nticks; ntick++){ if(!plot->bottom->ticks.values[ntick].minor) continue; if(plot->bottom->ticks.values[ntick].value >= plot->bottom->ticks.min){ gtk_plot_get_pixel(plot, plot->ymax, plot->bottom->ticks.values[ntick].value, &x1, &y1); gtk_plot_get_pixel(plot, plot->ymin, plot->bottom->ticks.values[ntick].value, &x2, &y2); gtk_plot_draw_line(plot, plot->bottom->minor_grid, x1, y1, x2, y2); } } } if(plot->bottom->show_major_grid) { for(ntick = 0; ntick < plot->bottom->ticks.nticks; ntick++){ if(plot->bottom->ticks.values[ntick].minor) continue; if(plot->bottom->ticks.values[ntick].value >= plot->bottom->ticks.min){ gtk_plot_get_pixel(plot, plot->ymax, plot->bottom->ticks.values[ntick].value, &x1, &y1); gtk_plot_get_pixel(plot, plot->ymin, plot->bottom->ticks.values[ntick].value, &x2, &y2); gtk_plot_draw_line(plot, plot->bottom->major_grid, x1, y1, x2, y2); } } } if(plot->left->show_minor_grid) { gtk_plot_set_line_attributes(plot, plot->left->minor_grid); for(ntick = 0; ntick < plot->left->ticks.nticks; ntick++){ if(!plot->left->ticks.values[ntick].minor) continue; if(plot->left->ticks.values[ntick].value >= plot->left->ticks.min){ gtk_plot_get_pixel(plot, plot->left->ticks.values[ntick].value, 90.0 - rotation, &ix, &iy); iy = fabs(oy - iy); gtk_plot_pc_draw_circle (plot->pc, FALSE, ox, oy, 2 * iy); } } } if(plot->left->show_major_grid) { gtk_plot_set_line_attributes(plot, plot->left->major_grid); for(ntick = 0; ntick < plot->left->ticks.nticks; ntick++){ if(plot->left->ticks.values[ntick].minor) continue; if(plot->left->ticks.values[ntick].value >= plot->left->ticks.min){ gtk_plot_get_pixel(plot, plot->left->ticks.values[ntick].value, 90.0 - rotation, &ix, &iy); iy = fabs(oy - iy); gtk_plot_pc_draw_circle (plot->pc, FALSE, ox, oy, 2 * iy); } } } }