imho.ws |
![]() |
![]() |
![]() |
# 1 |
Guest
Сообщения: n/a
|
Помогите с задачей на си
помогите разобраться в программе. Эта программма для того , чтобы выводить на экран sin(x).
#include <gtk/gtk.h> #include <math.h> #include <stdlib.h> #include <stdio.h> #define max(x,y) ((x)>(y)?(x) ![]() void draw( GdkDrawable *w, GdkGC * gc, int X1, int Y1, int X2, int Y2, float x1, float y1, float x2, float y2 ); //, float (*f)(float )); float f( float x ) { return sin(x); } void draw( GdkDrawable *w, GdkGC * gc, int XX1, int YY1, int XX2, int YY2, float x1, float y1, float x2, float y2 ) //, float (*f)(float ))*/ { float x, X1, Y1, X2, Y2; int X, Y; X1 = (float)XX1; X2 = (float)XX2; Y1 = (float)YY1; Y2 = (float)YY2; for( X = XX1; X <= XX2; X++ ) { x = (float)(((float)X - X1 )/( X2 - X1 ))*( x2 - x1 ) + x1; Y = (int)(( -f(x)- y1 )/( y2 - y1 )*( Y2- Y1 ) + Y1); gdk_draw_point( w, gc, X, Y ); } } gboolean on_draw (GtkWidget *widget, GdkEventExpose *event, gpointer data) { GdkGC * gc = widget->style->fg_gc[GTK_WIDGET_STATE (widget)]; GdkColor * clr = new GdkColor(); clr->pixel = 0; clr->red = 0xffff; clr->green = 0x8000; clr->blue = 0; gdk_gc_set_rgb_fg_color( gc, clr ); draw(widget->window, gc, 0,0, widget->allocation.width, widget->allocation.height, -3.14, -1, 3.14, 1 );//, f); return TRUE; } int main ( int argc, char ** argv ) { gtk_init( &argc, &argv); GtkWidget * window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request (window, 400, 400); g_signal_connect (G_OBJECT (window), "expose_event", G_CALLBACK (on_draw), NULL); gtk_widget_show_all(window); gtk_main(); return 0; } Мне нужно на подобие этой программки, написать такую же, только такую, которая строит график x, y. и чтобы там был sin(x), cos(x), tn(x). Буду очень благодарна. Ну или хотя бі скажите библиотеку, которая рисует график или комментарии к программе. |
![]() |
# 2 |
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Ну библиотека GTK в данном примере с отрисовкой помоему вполне справляется. Разве нет?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
![]() |
![]() |
# 4 |
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Ну "подключить" нужно GTK-библиотеку и ее подбиблиотеки, я этот сделал так Линуксе (разумеется devel-библиотеки вроде gtk2-devel должны быть установлены):
Код:
g++ `pkg-config gtk+-2.0 --cflags --libs` 1.c
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
![]() |