Рисование графиков
Постановка задачи
Заданна функция float F(float x), необходимо на выбранном пользователем интервале построить ее график. Программа должна автоматически определять масштаб, содержать разметку, линейку для сканирования точек графика. Значения сканируемых точек должны писаться под графиком.
Программа вывода графиков
Для рисования разметки рекомендуется воспользоваться стилем линий DOTTED_LINE. После завершения рисования не забудьте вернуться к стилю SOLID_LINE. Рисовать удобнее функцией line(...) выводимой в цикле.
Рисование графико2.doc
Рисование графиков
Постановка задачи
Заданна функция float F(float x), необходимо на выбранном пользователем интервале
построить ее график. Программа должна автоматически определять масштаб, содержать
разметку, линейку для сканирования точек графика. Значения сканируемых точек должны
писаться под графиком.
Программа вывода графиков
WX1
MaxF
WX2
WY1
Интервал
Вводятся t0,tmax,N
Макс/Мин
Определяется MaxF,MinF
Да
Ошибка
MinF
t0
X=4.3 F(X)=1.2
WY2
tmax
t0
dt
t1 = t0+i*dt
Начальное положение
линейки просмотра
Нет
closegraph()
initgraph()
!=grOk
Разметка
Оцифровка
График
Линейка
ch!=27
Линейка
ch
x
x++
x!=OldX
Да
Стир. стар.
Нов. полож.
OldX=x;
Движение
линейки по
экрану и
сканирование
точек графика. Рисование разметки
Для рисования разметки рекомендуется воспользоваться стилем линий DOTTED_LINE.
После завершения рисования не забудьте вернуться к стилю SOLID_LINE. Рисовать удобнее
функцией line(...) выводимой в цикле.
Нахождение минимума и максимума функции
Max1=Min1=F(t0)
i=1;i,<"Текст, метки
форматов",[<Переменные>]>). Эта функция аналогична printf(...), но вывод происходит не на
экран, а в строку.
Пример:
char st[80] ;
. . . . .
sprintf(st,"x=%f , F(x)=%f",x,F(x)) ;
outtextxy(100,100,st) ;
При выводе на экран необходимо помнить, что координаты переданные в функцию
outtextxy(...), относятся к левому верхнему углу строки. Чтобы строки были напротив (а ври
выводе оцифровки по оси Х под) линей разметки, ее необходимо сдвинуть. Полезно учесть
размер символа (функции textwidth(...) и textheight(..).
Блок схема функции оцифровки графика
Вывод графика
Для вывода графика рекомендуется ввести целые переменные: x1,y1,x2,y2 координаты
точек, WX1,WY1,WX2,WY2 координаты окна вывода. Алгоритм рисования графика
следующий. ti=t0+i*(tmaxt0)/N
t0
WX1
xi=WX1+i*(WX2WX1+0.0)/N
tmax
WX2
MaxF
WY1
F(ti)
MinF
y
WY2
maxF F(ti)
maxF minF
=
yWY1
WY2WY1
x1=...; y1=...
i=1;i). Установленный
режим действует до установки нового. По умолчанию используется режим COPY_PUT.
Для того, чтобы не забыть отключить режим инверсии, удобнее вынести все это в
отдельную функцию, которая будет и стирать, и рисовать линю курсора.
void PutLine(int x,int y1,int y2)
{
setwritemode(XOR_PUT) ;
setcolor(RED) ; /* Инверсия др. цветом даст др. резулт. */
/* Линия будет рисоваться не цветом RED */
line(x,y1,x,y2) ; /* Линия вертикальная x1=x2=x */ setwritemode(COPY_PUT) ; /* Иначе и все остальное будет с инверсией цветов. */
} /* Кон. PutLine() */
Лекция "Рисование графиков в си"
Лекция "Рисование графиков в си"
Лекция "Рисование графиков в си"
Лекция "Рисование графиков в си"
Лекция "Рисование графиков в си"
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.