IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
Closed Topic Открыть новую тему 
> ГРАФИКА, построить "бабочку"
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пи

Заранее спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 24.10.2008 22:15
Сообщение #4


Гость






сделайте пожалуйста простенький график бабочку
 К началу страницы 
+ Ответить 
Lapp
сообщение 24.10.2008 22:30
Сообщение #5


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


1. Решение уже есть, как я понимаю, в этой теме.
2. Не задавай свои вопросы в чужих темах.
 ! 
Закрыто.



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.04.2024 11:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"