imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 28.09.2009, 15:39     # 1
Malina
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)y))


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). Буду очень благодарна. Ну или хотя бі скажите библиотеку, которая рисует график или комментарии к программе.
 
Старый 29.09.2009, 10:38     # 2
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
Сообщение от Malina Посмотреть сообщение
Ну или хотя бі скажите библиотеку, которая рисует график или комментарии к программе.
Ну библиотека GTK в данном примере с отрисовкой помоему вполне справляется. Разве нет?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 29.09.2009, 13:46     # 3
Malina
Guest
 
Сообщения: n/a

Мне сказали что надо еще что-то подключить.
 
Старый 29.09.2009, 14:36     # 4
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Ну "подключить" нужно GTK-библиотеку и ее подбиблиотеки, я этот сделал так Линуксе (разумеется devel-библиотеки вроде gtk2-devel должны быть установлены):
Код:
g++ `pkg-config gtk+-2.0 --cflags --libs` 1.c
После этого просто запустил получившийся бинарник и вижу график в окошке. То есть все работает и код нормальный.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 18:08.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.