Построение графика функции в окне

  • Автор темы Denisss
  • Дата начала
D

Denisss

#1
Дорабатывал текст программы для построения в оконном режиме графика функции:
cos^5+2sinx, интервал (0;8пи)
Вот вырезка из кода 157 строка: (Тестовый пример построения)
[codebox]for (i=0; i<NUM; i++)
{
pt.x=i*(Nx*StepX)/NUM;
pt.y=(int) ((Ny*StepY)/2*(1-sin(PI*i*8/NUM));= ';[/codebox]

В этом вся промлема, тестовый пример строит, а когда пробую по примеру составить свою функцию:

[codebox]for (i=0; i<NUM; i++)
{
pt.x=i*(Nx*StepX)/NUM;
pt.y=(int) ((Ny*StepY)/(2*(sin(8*PI*i/NUM))+cos...;= ';[/codebox]
NUM=1000
То программа не может это построить.

Помогите пожалуйста это понять и задать, ниже все файлы с проекта. Компилятор Visual Studio.

Посмотреть вложение ____.rar
 

Вложения

  • 3.4 КБ Просмотры: 48
Z

zeus

#2
построение графика это простая задача... ;)

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">для начала нужно найти все точки и вычислить экстремальные точки</div></div><div class="sp-body"><div class="sp-content">
C++:
struct Point2D
{
double x,y;
};

Point2D pt[NUM];
for (int i = 0; i < NUM; ++i)
{
pt[i].x = stepX * i;
pt[i].y = cos(pt[i].x) + 2*sin(pt[i].x);
} // for

double minX, minY, maxX, maxY;
minX = maxX = pt[0].x;
minY = maxY = pt[0].y;
for (int i = 1; i < NUM; ++i)
{
minX = min(minX, pt[i].x);
maxX = max(maxX, pt[i].x);
minY = min(minY, pt[i].y);
maxY = max(maxY, pt[i].y);
} // for
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">затем нарисовать кривую, используя преобразование из декартовых координат в координаты окна</div></div><div class="sp-body"><div class="sp-content">
C++:
int sx = (pt[0].x - minX) * Width / (maxX- minX);
int sy = (pt[0].y - maxY) * Height / (minY - maxY);
moveto(sx, sy); // перемещаем перо в точку (sx,sy)
for (int i = 1; i < NUM; ++i)
{
sx = (pt[i].x - minX) * Width / (maxX- minX);
sy = (pt[i].y - maxY) * Height / (minY - maxY);
lineto(sx, sy); // рисуем линию из тек. положения пера в точку (sx,sy) и перемещаем перо...
} // for
Width и Height соответственно ширина и высота окна...