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

Тема в разделе "C/C++/C#", создана пользователем Denisss, 24 мар 2010.

  1. Denisss

    Denisss Гость

    Дорабатывал текст программы для построения в оконном режиме графика функции: [​IMG] 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
     
  2. zeus

    zeus Гость

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

    <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 соответственно ширина и высота окна...
     
Загрузка...
Похожие Темы - Построение графика функции
  1. yyyuuu
    Ответов:
    2
    Просмотров:
    1.062
  2. Gargon
    Ответов:
    5
    Просмотров:
    859
  3. Dragon108
    Ответов:
    2
    Просмотров:
    937
  4. klyblg
    Ответов:
    0
    Просмотров:
    1.524
  5. dannyblinov
    Ответов:
    0
    Просмотров:
    1.236

Поделиться этой страницей