22.07.2018, 01:41 [+3 UTC]
в нашей команде: 2 884 чел. | участники онлайн: 1 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.47 (16.04.2018)

Общие новости:
13.04.2018, 10:33

Форум:
20.07.2018, 12:27

Последний вопрос:
20.07.2018, 13:35

Последний ответ:
19.07.2018, 14:46

Последняя рассылка:
21.07.2018, 00:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
06.03.2017, 09:09 »
orlovanatol
Огромное спасибо за помощь! [вопрос № 190652, ответ № 274730]
23.09.2010, 21:28 »
B_production
Супер! Премного благодарен! P.S. Есть четвертый способ - поднять терминальный сервер... smile [вопрос № 179981, ответ № 263153]
19.01.2016, 12:23 »
svrvsvrv
Есть другой способ решения этой задачи (для тех, кто не знаком с комбинаторикой)? [вопрос № 188675, ответ № 273249]

РАЗДЕЛ [неизвестная рассылка]

[администратор рассылки: [неизвестный]]

Лучшие эксперты в этом разделе


Перейти к консультации №:
 

Консультация онлайн # 138607
Раздел: [неизвестная рассылка]
Автор вопроса: Бородин Всеволод Олегович
Отправлена: 30.05.2008, 01:13
Поступило ответов: 1

Я вывел на экран окно с двумя маховичками для изменения параметров моей задачи и два поля для ввода двух других параметров. Как взять положение маховичка и передать его в качестве переменной в функцию,которая у меня считает точки графика? Аналогично, как взять то значение, которое я ввожу в поле и передать его в функцию?
На всякий случай приведу текст программы:
#include "TGraphPanel.h"
#include "fltkopt.h"
#include <FL/Fl.H>
#include <math.h>
#include <Fl/Fl_Box.h>
#include <Fl/Fl_Button.h>
#include <FL/Fl_Roller.H>
#include <FL/gl.h>
#include <FL/Fl_Slider.H>
#include <GL/gl.h>
#include <stdlib.h>
#include "MainWindow.h"
#include <FL/Fl_Input.H>

void Exit_Callback(Fl_Widget*, void*)
{
exit(0);
}
double Sinc (double x, double d, int L)
{
double E = 1;
double X[1000];
double Y[1000];
double xmax;
double xmin;

int i;
double* pX;
double* pY;

for (i=0; i<1000; i++)
{
X[i] = xmin+i*(xmax-xmin)/1000;

x = X[i];

if (x != 0)
{
Y[i] = Sinc(x, d, L);
}
else
{
Y[i] = E*E*d*d;
}
}
return Y[i];
pX = &X[i];
pY = &Y[i];
}
void TGraphPanel::draw()
{
static bool bIsFirstTime = true;
if(bIsFirstTime)
{
InitialiseGL();
bIsFirstTime = false;
}

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();

for(i=0; i<1000; i++)
{
glBegin(GL_LINES);

glColor3d(0.00f, 0.00f, 1.00f);

glVertex2d(-1.0, -1.0);
glVertex2d(1.0, 1.0);
}
glEnd();
}
int main(int argc, char * argv[])
{
{
MainWindow MyMai

MainWindow MyMainWindow;

Fl_Window *window = MyMainWindow.make_window();

Fl::background(100, 100, 100);

window->begin();

TGraphPanel* pPanel = new TGraphPanel(10, 65, window->w() - 20, window->h() - 140);
Fl_Button* pExitButton = new Fl_Button(370, 570, 60, 30, "OK");
Fl_Roller* pRoller1 = new Fl_Roller(630, 525, 30, 60, "lambda");
Fl_Roller* pRoller2 = new Fl_Roller(170, 525, 30, 60, "L");
Fl_Input* pInput1 = new Fl_Input(170, 20, 60, 30, "Vvod Minimum x");
Fl_Input* pInput2 = new Fl_Input(630, 20, 60, 30, "Vvod Maksimum x");
pExitButton->callback(Exit_Callback);
window->end();
window->resizable(pPanel);
window->show(argc, argv);

return Fl::run();

}
}
Как видите, у меня есть два маховичка, задающиеся классом Fl_Roller. Нужно брать положение каждого из них и передавать в функцию Sinc в качестве параметров d и L, а потом вычисленные ею значения передать в функцию draw(). То же самое нужно сделать с двумя полями xmax и xmin.

Состояние: Консультация закрыта

Здравствуйте, Бородин Всеволод Олегович!

Чтобы получить значение маховичка, надо вызвать его метод value().
Например:

pRoller1->value()

Тип возвращаемого значения будет double.
Для полей ввода это будет так:

pInput1->value(char* str)

в str - указатель на текущее значение элемента


Консультировал: XeS
Дата отправки: 30.05.2008, 16:30

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.15449 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.47 от 16.04.2018