![]() |
Помогите с задачей на си
помогите разобраться в программе. Эта программма для того , чтобы выводить на экран 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). Буду очень благодарна. Ну или хотя бі скажите библиотеку, которая рисует график или комментарии к программе. |
Цитата:
|
Мне сказали что надо еще что-то подключить.
|
Ну "подключить" нужно GTK-библиотеку и ее подбиблиотеки, я этот сделал так Линуксе (разумеется devel-библиотеки вроде gtk2-devel должны быть установлены):
Код:
g++ `pkg-config gtk+-2.0 --cflags --libs` 1.c |
Часовой пояс GMT +4, время: 18:01. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.