ГРАФИКА, построить "бабочку" |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
ГРАФИКА, построить "бабочку" |
sds |
15.05.2007 22:42
Сообщение
#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 |
15.05.2007 22:45
Сообщение
#2
|
Гость |
Как строить график параметрически заданной функции - см. здесь:
Графики функций, заданных параметрически |
sds |
26.05.2007 22:12
Сообщение
#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 килобайт ) Кол-во скачиваний: 185 |
Гость |
24.10.2008 22:15
Сообщение
#4
|
Гость |
сделайте пожалуйста простенький график бабочку
|
Lapp |
24.10.2008 22:30
Сообщение
#5
|
|||
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
1. Решение уже есть, как я понимаю, в этой теме.
2. Не задавай свои вопросы в чужих темах.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
Текстовая версия | 19.04.2024 11:34 |