示例#1
0
文件: test.C 项目: SALAM2016/orbiter
void Halls_theorem()
{
	BYTE fname[1000];
	INT xmax = 1000;
	INT ymax = 1000;
	INT Adjacency[] = {
1,1,1,0,0,0,0,0,0,0,0,0,0,
1,0,0,1,1,0,0,0,0,0,0,0,0,
1,0,0,0,0,1,1,0,0,0,0,0,0,
0,1,0,1,0,1,0,0,0,0,0,0,0,
0,1,0,0,1,0,1,0,0,0,0,0,0,
0,0,1,1,0,0,1,0,0,0,0,0,0,
0,0,1,0,0,0,0,1,1,0,0,0,0,
0,0,0,0,1,0,0,0,0,1,1,0,0,
0,0,0,0,0,1,0,0,0,0,0,1,1,
0,0,0,0,0,0,0,1,0,1,0,1,0,
0,0,0,0,0,0,0,1,0,0,1,0,1,
0,0,0,0,0,0,0,0,1,1,0,0,1,
0,0,0,0,0,0,0,0,1,0,1,1,0,
		};
	INT m = 13;
	INT n = 13;
	INT k, a;
	INT f_cartesian = FALSE;
	
	strcpy(fname, "Hall");
	for (k = 0; k < 10; k++) {
		a = random_integer(m * n);
		Adjacency[a] = 1 - Adjacency[a];
		}
	draw_action(fname, xmax, ymax, Adjacency, m, n, f_cartesian);
}
示例#2
0
文件: test.C 项目: SALAM2016/orbiter
void draw_matrix(matrix &H, BYTE *fname, INT xmax, INT ymax, INT f_cartesian)
{
	INT *Adjacency;
	INT m, n, i, j;
	
	m = H.s_m();
	n = H.s_n();
	Adjacency = new INT[m * n];
	for (i = 0; i < m; i++) {
		for (j = 0; j < n; j++) {
			Adjacency[i * n + j] = H.s_iji(i, j);
			}
		}
	draw_action(fname, xmax, ymax, Adjacency, m, n, f_cartesian);
}
static gboolean
on_expose_event (GtkWidget          *widget,
                 GdkEventExpose     *event,
                 GsdMediaKeysWindow *window)
{
        cairo_t         *context;
        cairo_t         *cr;
        cairo_surface_t *surface;
        int              width;
        int              height;
        GdkColor         color;
        double           r, g, b;

        context = gdk_cairo_create (GTK_WIDGET (window)->window);

        cairo_set_operator (context, CAIRO_OPERATOR_SOURCE);
        gtk_window_get_size (GTK_WINDOW (widget), &width, &height);

        surface = cairo_surface_create_similar (cairo_get_target (context),
                                                CAIRO_CONTENT_COLOR_ALPHA,
                                                width,
                                                height);

        if (cairo_surface_status (surface) != CAIRO_STATUS_SUCCESS) {
                goto done;
        }

        cr = cairo_create (surface);
        if (cairo_status (cr) != CAIRO_STATUS_SUCCESS) {
                goto done;
        }
        cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0);
        cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
        cairo_paint (cr);

        /* draw a box */
        curved_rectangle (cr, 0, 0, width, height, height / 10);
        color = GTK_WIDGET (window)->style->bg [GTK_STATE_NORMAL];
        r = (float)color.red / 65535.0;
        g = (float)color.green / 65535.0;
        b = (float)color.blue / 65535.0;
        cairo_set_source_rgba (cr, r, g, b, BG_ALPHA);
        cairo_fill_preserve (cr);

        color = GTK_WIDGET (window)->style->fg [GTK_STATE_NORMAL];
        r = (float)color.red / 65535.0;
        g = (float)color.green / 65535.0;
        b = (float)color.blue / 65535.0;
        cairo_set_source_rgba (cr, r, g, b, BG_ALPHA);
        cairo_set_line_width (cr, 1);
        cairo_stroke (cr);

        /* draw action */
        draw_action (window, cr);

        cairo_destroy (cr);

        /* Make sure we have a transparent background */
        cairo_rectangle (context, 0, 0, width, height);
        cairo_set_source_rgba (context, 0.0, 0.0, 0.0, 0.0);
        cairo_fill (context);

        cairo_set_source_surface (context, surface, 0, 0);
        cairo_paint_with_alpha (context, window->priv->fade_out_alpha);

 done:
        if (surface != NULL) {
                cairo_surface_destroy (surface);
        }
        cairo_destroy (context);

        return FALSE;
}