ГРАФИКА, построить "бабочку" |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
ГРАФИКА, построить "бабочку" |
sds |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: 0 |
Помогите пожалуста, а то с графикой вообще туго
Написать программу построения графика функции. Вывод графика осуществляется в созданном на экране окне, в другом окне выполнить вывод уравнения функции с конкретными значениями параметров. Выполнить смену 3-х экранов с конкретными значениями параметров. “Бабочка”: X=sin(At + B)cos(Ct), Y=sin(At + B)sin(Dt), A>0, B>0, C>0, D>0, 0<=t<=2пи Заранее спасибо. |
volvo |
Сообщение
#2
|
Гость |
Как строить график параметрически заданной функции - см. здесь:
Графики функций, заданных параметрически |
sds |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: 0 |
Я тут вроде бы написал погу может проверите, протестируете
Код Uses Crt, Graph; var GraphDriver, GraphMode, ErrorCode : Integer; Center_x, Center_y, {Координаты центра координатной сетки} Width_x, Height_y : integer; {Ширина и высота координатной сетки для масштабирования значений аргумента и функции} procedure InitGrp; begin { драйвер и режимы по умолчанию } GraphDriver := Detect; { драйвер egavga.bgi в текущей папке } InitGraph(GraphDriver, GraphMode, 'egavga.bgi'); ErrorCode := GraphResult; { обработка ошибки } if ErrorCode <> grOK then begin Writeln('Graphics error: ', GraphErrorMsg(ErrorCode)); CloseGraph; Halt(1); end; end; const {Шаг наращивания t. Чем меньше, тем более плавно рисуется график. В данном случае принимается дискретность - 200 шагов} Td = 2*Pi / 200; var X, Y, A, B, C, D, t, y_scale : real; {Переменные для хранения координат построения графика} xx, yy : integer; {Вспомогательные переменные} sA, sB, sC, sD : string; Begin Clrscr; Write('Enter A>0:'); Readln(A); Write('Enter B>0:'); Readln(B); Write('Enter C>0:'); Readln(C); Write('Enter D>0:'); Readln(D); {Задаём исходные данные для тестирования алгоритма программы} {A:=2; B:=3; C:=4; D:=5; } {Загружаем графический драйвер и включаем графический режим} InitGrp; {Устанавливаем параметры координатной сетки исходя из максимального разрешения установленного граф.режима} Center_x := GetMaxX div 2; Center_y := GetMaxY div 2; Width_x := (GetMaxX div 2) - 50; Height_y := (GetMaxY div 2) - 50; {Предполагаем, что максимальное значение U(t) не превысит 20, поэтому вычисляем масштабный коэффициент для вывода графика функции} y_scale:=Height_y/1; {Рисуем оси координат белым цветом} SetColor(white); Line(Center_x+Width_x,Center_y,Center_x-Width_x,Center_y); Line(Center_x,0,Center_x,Center_y+Height_y); {Рисуем график функции красным цветом} SetColor(red); t:=0; {Начальное значение времени} repeat {Вычисляем значения функции} X:=sin(A*t + B) * cos(C*t); Y:=sin(A*t + B) * sin(D*t); {Поскольку в графическом режиме координаты по вертикали растут сверху вниз, то параметр Y следует не складывать, а отнимать от осевой координаты Center_y } xx:=trunc(Center_x + X * Width_x); yy:=trunc(Center_y - Y * y_scale{Height_y}); if t=0 then MoveTo(xx,yy) else LineTo(xx,yy); t:=t+Td; {Наращиваем t} until t>2*Pi; {Получаем символьный вид параметров A,B,C,D} Str(A:2:2,sA); Str(B:2:2,sB); Str(C:2:2,sC); Str(D:2:2,sD); {Задаём координату высоты вывода уравнения функции} yy:=Center_y+Height_y+10; OutTextXY(0,yy,'X=Sin(' + sA + '*t+' + sB + ')*Cos(' + sC + '*t)'); {Переходим на следующую строку и выводим вторую половину уравнения} yy:=yy+10; OutTextXY(0,yy,'Y=Sin(' + sA + '*t+' + sB + ')*Sin(' + sD + '*t)'); readln; {Выходим из граф. режима в текстовый режим} CloseGraph; End. Прикрепленные файлы GRAVIII.PAS ( 1.25 килобайт ) Кол-во скачиваний: 272 |
Гость |
Сообщение
#4
|
Гость |
сделайте пожалуйста простенький график бабочку
|
Lapp |
Сообщение
#5
|
|||
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
1. Решение уже есть, как я понимаю, в этой теме.
2. Не задавай свои вопросы в чужих темах.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
Текстовая версия | 20.04.2024 7:30 |