[cairo] unable to get the dotted and continuous lines

Lokesh Chakka lvenkatakumarchakka at gmail.com
Thu Aug 7 23:46:59 PDT 2014


ravi,

thanks for the information. it worked for me.

Thanks & Regards
--
Lokesh.


On Fri, Aug 8, 2014 at 11:53 AM, RAVI NANJUNDAPPA <nravi.n at samsung.com>
wrote:

> hi Lokesh,
>
> I tried your sample code in my machine.
> I guess the program is fine except that I changed the rgb values in
> draw_graphlins()
> from
> cairo_set_source_rgb( cr, 0.8, 0.8, 0.8 );
> to
> cairo_set_source_rgb( cr, 0, 0, 0 );
> After this change, am able to see the grid + blue line.
>
> So, I feel it was due to rgb values which was making the grid lines not
> recognized by eyes.
> Please check this out in your environment too.
>
> Thanks and Best Regards,
> N Ravi
>
> ------- Original Message -------
> Sender : Lokesh Chakka<lvenkatakumarchakka at gmail.com>
> Date : Aug 08, 2014 10:15 (GMT+05:30)
> Title : [cairo] unable to get the dotted and continuous lines
>
>
>
> Hello,
>
>
> I newly started using Cairo. I am facing one problem with the Cairo
> function calls. I want to first draw Cartesian grids using hyphens with
> gray color and after that I want to plot a normal line in blue color.
>
>
> I referred the program pen dashes at  Basic drawing in Cairo
>
>
> But I am seeing only the blue color line. but not the Cartesian grids. Can
> some one help me by telling what mistake I am doing.
>
>
> #include <cairo.h>
> #include <gtk/gtk.h>
> #include <math.h>
> #include <inttypes.h>
>
>
> uint16_t drawing_width = 300, drawing_height = 200;
>
> uint16_t evaluate_y_coordinate( uint16_t y )
> {
>     return drawing_height - y;
> }
>
> static void draw_graphlines( cairo_t *cr )
> {
>     const uint16_t stepx = drawing_width/10, stepy = drawing_height/5;
>     const double dashes[] = { 5, 10 };
>     uint32_t i;
>
>     cairo_set_source_rgb( cr, 0.8, 0.8, 0.8 );
>     cairo_set_line_width( cr, 0.5 );
>     cairo_set_dash ( cr, dashes, 2, 0 );
>     for( i=0; i<drawing_width; i+=stepx )
>     {//vertical lines
>         cairo_move_to( cr, i, evaluate_y_coordinate( 0 ) );
>         cairo_line_to( cr, i, evaluate_y_coordinate( drawing_height ) );
>     }
>     for( i=0; i<drawing_height; i+=stepy )
>     {// horizontal lines
>         cairo_move_to( cr, 0, evaluate_y_coordinate( i ) );
>         cairo_line_to( cr, drawing_width, evaluate_y_coordinate( i ) );
>     }
>     cairo_stroke(cr);
>     cairo_set_dash ( cr, dashes, 0, 0 );
> }
>
>
> static void do_drawing( GtkWidget *widget, cairo_t *cr, char *data )
> {
>     GdkRGBA rgba;
>
>     draw_graphlines( cr );
>     cairo_set_source_rgb( cr, 0, 0, 1 );
>     cairo_set_line_width( cr, 2.0 );
>     cairo_move_to( cr, 10, 10 );
>     cairo_line_to( cr, 100, 100 );
>     cairo_stroke(cr);
> }
>
>
> int main (int argc, char *argv[])
> {
>   GtkWidget *window;
>   GtkWidget *darea;
>
>   gtk_init(&argc, &argv);
>
>   window = gtk_window_new(GTK_WINDOW_
> TOPLEVEL);
>
>   darea = gtk_drawing_area_new();
>   gtk_container_add(GTK_CONTAINER(window), darea);
>
>   g_signal_connect(G_OBJECT(darea), "draw", G_CALLBACK(do_drawing), NULL);
>   g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit),
> NULL);
>
>   gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
>   gtk_window_set_default_size(GTK_WINDOW(window), drawing_width,
> drawing_height );
>   gtk_window_set_title(GTK_WINDOW(window), "Fill & stroke");
>
>   gtk_widget_show_all(window);
>
>   gtk_main();
>
>   return 0;
> }
>
>
>
>
> Thanks & Regards
> --
> Lokesh
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo/attachments/20140808/912b98e5/attachment.html>


More information about the cairo mailing list