Also c.green = (i/99.0) * G_MAXUINT16;
Might work as well. Kevin On Tuesday 21 June 2005 02:08 pm, Kevin DeKorte wrote: > You are dividing first and getting an int 0 * G_MAXUINT16 > > in the line > > c.green = i/99 * G_MAXUINT16; > > Multiply first and then divide. you might need a long int tmp to hold the > value prior to assigning to c.green. By dividing first you basically are > doing a multiply by 0 and that is why it is 0 until i = 99 which when > divided by 99 will give you 1. Then multiple 1 x G_MAXUINT16 will give > G_MAXUINT16 or 65535. > > So the next line might be better. > > c.green = (i * G_MAXUINT16) / 99; > > Kevin > > On Tuesday 21 June 2005 01:33 pm, Lola Smith wrote: > > > Before your call to gdk_set_rgb_fg_color, do a > > > g_print on the values of > > > c.red, c.blue, c.green, and i. You may be surprised > > > at what you see. > > > > You're right. They're all the same thoughout the loop. > > red = 65535, blue = 0, green = 0, except at the very > > end green = 65535 (hence the yellow color). I figured > > this is because they are integers, not doubles. > > > > So, how is it possible to change the colors inside the > > loop? > > > > Sorry, I'm pretty clueless right now... :-( > > Any help is appreciated! > > > > > > -----Original Message----- > > > > From: [EMAIL PROTECTED] > > > > > > [mailto:gtk-app-devel-list- > > > > > > > [EMAIL PROTECTED] On Behalf Of Lola Smith > > > > Sent: Tuesday, June 21, 2005 11:10 AM > > > > To: gtk-app-devel-list@gnome.org > > > > Subject: Re: 100 Different Colors > > > > > > > > Jan-Marek, thanks for your response. > > > > > > > > I tried this: > > > > >for (i=0; i<100; i++) { > > > > > c.pixel = 0; > > > > > c.red = G_MAXUINT16; > > > > > c.blue = (i % 33 / 99) * G_MAXUINT16; > > > > > c.green = i/99 * G_MAXUINT16; > > > > > gdk_gc_set_rgb_fg_color( gc, &c ); > > > > > gdk_draw_rectangle (widget->window, gc, TRUE, > > > > > > > > i*15, > > > > > > > > > 0, 11, 11); > > > > >} > > > > > > > > But all the squares are red now, with the > > > > > > exception of > > > > > > > the last one (100th), which is yellow. > > > > Do I have to change the value of c.red inside the > > > > > > for > > > > > > > loop as well? Maybe something related to i? > > > > > > > > Btw, I am using gtk version 2.2, which didn't have > > > > G_MAXUINT16, so I defined it like: > > > > > > > > #define G_MAXUINT16 ((guint16) 0xffff) > > > > > > > > Can someone help? Thaaank you! > > > > > > > > --- Jan-Marek Glogowski <[EMAIL PROTECTED]> wrote: > > > > > Hi > > > > > > > > > > > I need to create 100 little squares and each > > > > > > of > > > > > > > > them > > > > > > > > > > > has to be a different color. They can't just > > > > > > be a > > > > > > > > > random color: they have to follow the colors > > > > > > of > > > > > > > > the > > > > > > > > > > > standard color spectrum/palette. For example, > > > > > > the > > > > > > > > > first one is dark blue, then lighter blue, ... > > > > > > , > > > > > > > > > green, ... , red. > > > > > > > > > > Std. color spectrum? Maybe like the circle in > > > > > > the > > > > > > > > GtkColorSelectionDialog? > > > > > > > > > > Algo: > > > > > r = max, g = 0, b = 0 > > > > > r = max , g = max, b = 0 > > > > > r = 0, g = max, b = 0 > > > > > r = 0, g = max, b = max > > > > > r = 0, g = 0, b = max > > > > > r = max, g = 0, b = max > > > > > back to step 1 > > > > > > > > > > See GtkColorSelection source > > > > > > > > > > From the GDK Manual: > > > > > > > > > > gdk_gc_set_rgb_fg_color () - set the foreground > > > > > color of a GC using an > > > > > unallocated color. > > > > > > > > > > GdkColor - red, green, blue ... is a value > > > > > > between 0 > > > > > > > > and 65535, with 65535 > > > > > indicating full intensitiy. > > > > > > > > > > GdkGC *gc; > > > > > GdkColor c; > > > > > > > > > > gc = gdk_gc_new (widget->window); > > > > > > > > > > for (i=0; i<100; i++) { > > > > > c.pixel = 0; > > > > > c.red = G_MAXUINT16; > > > > > c.blue = (i % 33 / 99) * G_MAXUINT16; > > > > > c.green = i/99 * G_MAXUINT16; > > > > > gdk_gc_set_rgb_fg_color( gc, &c ); > > > > > gdk_draw_rectangle (widget->window, gc, TRUE, > > > > > i*15, > > > > > 0, 11, 11); > > > > > } > > > > > > > > > > HTH > > > > > > > > > > Jan-Marek > > > > > > ____________________________________________________ > > > > > > > Yahoo! Sports > > > > Rekindle the Rivalries. Sign up for Fantasy > > > > > > Football > > > > > > > http://football.fantasysports.yahoo.com > > > > _______________________________________________ > > > > gtk-app-devel-list mailing list > > > > gtk-app-devel-list@gnome.org > > > > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list > > > > > > > > > > > > > > ____________________________________________________ > > Yahoo! Sports > > Rekindle the Rivalries. Sign up for Fantasy Football > > http://football.fantasysports.yahoo.com > > _______________________________________________ > > gtk-app-devel-list mailing list > > gtk-app-devel-list@gnome.org > > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
_______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list