Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2009, 22:18   #1
Медина
Пользователь
 
Регистрация: 27.03.2009
Сообщений: 14
По умолчанию Графики!

В си++ графики строятся по точкам.Как найти эти точки?как их подсчитать?
Медина вне форума Ответить с цитированием
Старый 28.05.2009, 22:24   #2
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Странный вопрос. Что Вам конкретно надо?
Levsha100 вне форума Ответить с цитированием
Старый 28.05.2009, 22:25   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну вот есть у вас уравнение. Например, y = x.
И есть у вас экран. Естественно, координаты, которые используются в уравнении и координаты экрана (в пикселях) - не одни и те же.
Поэтому нужно переводить одни в другие, прежде чем строить.

У вас есть левая граница экрана (0) и правая. Также верхняя (0) и нижняя.
И вы должны задать область видимости декартовой системы координат. Тоже будет левая, правая, верхняя и нижняя границы.

Дальше вам нужно строить график. Вы берете точку и подставляете ее в уравнение. В итоге имеем 2 точки.
С помощью соотношений находите координаты этой точки на экране. И тогда ее рисуете.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.05.2009, 22:35   #4
Медина
Пользователь
 
Регистрация: 27.03.2009
Сообщений: 14
По умолчанию

необходимо построить графики функций y=cos(x) и y=cos(x)*sin(x)

Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <graphics.h>
#define pi 3.14159
#define N 100

void graph(float *U, int x1, int x2, int y1, int y2, int n)
{
    int i, x, y;
    float Umax, Umin;
    Umin=U[0];
    Umax=U[0];
    for(i=1;i<n;i++)
    {
	if(U[i]<Umin) Umin=U[i];
	if(U[i]>Umax) Umax=U[i];
    }
    x=x1;
    y=y2-(y2-y1)*(U[0]-Umin)/(Umax-Umin);
    moveto(x,y);
    for(i=1;i<n;i++)
    {
	x=x1+(float)(x2-x1)/(n-1)*i;
	y=y2-(y2-y1)/(Umax-Umin)*(U[i]-Umin);
	lineto(x,y);
    }
}


int main()
{
    float y1[N], y2[N], x[N], dx, xk=2*pi, xn=0;
    int gd, gm, errorcode, i;
    int x11=0, x12=, x21=, x22=;
    int y11=0, y12=, y21=, y22=;
    dx=(xk-xn)/(N-1);
    gd=DETECT;
    for(i=0;i<N;i++)
    {
	x[i]=xn+i*dx;
	y1[i]=cos(x[i])-sin(2*x[i]);
	y2[i]=cos(x[i]);
    }
    initgraph(&gd,&gm,"C:\\BORLANDC\\BGI");
    errorcode=graphresult();
    if(errorcode!=0)
    {
	printf("Oshibka grafiki: %s", grapherrormsg(errorcode));
	getch();
	closegraph();
	return (0);
    }
    line(  );
    setfillstyle(1,GREEN);
    bar();
    line();
    setcolor(RED);
    outtextxy( , ,"y=cos(x)*sin(x)");
    outtextxy(  ,  ,"y=cos(x)");
    outtextxy( , ,"y");
    outtextxy(  ,  ,"y");
    line();
    line();
    line();
    outtextxy();
    outtextxy();
    outtextxy();
    outtextxy();
    graph(&y1[0],x11,x12,y11,y12,N);
    graph(&y2[0],x21,x22,y21,y22,N);
    getche();
    return (1);
}
тогда попутный вопрос,как перевести координаты в уравнении в координаты пикселях?
Медина вне форума Ответить с цитированием
Старый 28.05.2009, 22:58   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
как перевести координаты в уравнении в координаты пикселях?
Ну вот для примера: пусть мы строим график в первой четверти.
Тогда левые и верхние границы совпадают (равны 0).
Правая граница системы пусть будет 20, а экрана - 1024.
И имеется координата по x равная 5.
Тогда как ее перевести в пиксели? Соотношением.
20 - 1024
5 - x_pixel
=> x_pixel = 5*1024/20.
Аналогично для y.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графики Slavik Microsoft Office Excel 13 20.03.2009 15:45
Графики.... a_n_n_a Помощь студентам 4 08.03.2009 04:20
Графики в БД ~LiS~ БД в Delphi 1 05.06.2008 22:19
графики ZhekON Помощь студентам 6 10.04.2008 18:14
Графики delphin100 Общие вопросы Delphi 6 16.03.2008 10:40