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

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

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

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


Гость






Как строить график параметрически заданной функции - см. здесь:
Графики функций, заданных параметрически

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


Гость






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


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

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

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


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



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

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

 





- Текстовая версия 20.04.2024 7:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name