Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Задание. Построить график кривой, заданной параметрически: X=(2+0.5cos(8t))cos(t), Y=(2+0.5cos(8t))sin(t) для интервала t от 0 до 2π






    Построить график кривой, заданной параметрически: X=(2+0.5cos(8t))cos(t), Y=(2+0.5cos(8t))sin(t) для интервала t от 0 до 2π, нанести на график размеченные оси координат и сделать подпись.

    Дополнительные требования: график изобразить тонкой сплошной линией красного цвета на белом фоне, координатные оси (толстая линия) и разметка (тонкая линия) – черного (темно-серого) цвета, подпись – синего цвета под графиком посередине.

    Программу составить для EGA и VGA адаптеров (универсальную). Драйвер графического адаптера (с именем EGAVGA.BGI) находится в каталоге D: \TP6\BGI.

    Условия, принятые из соображений дизайна:

    График будет занимать 60% ширины и высоты экрана. Разметку проводим через 0.5 по Х и Y. График рисуем процедурой LineTo, для 400 точек.

    Program Graph_work2;

    { Программа Лабораторной работы N 8

    Вариант N 32.

    Построение кривой, заданной параметрически.

    А.Я.Умненькая, ст. гр. Я-007 }

    Uses Graph, Crt; { Print - только при наличии принтера для печати графика с экрана на бумагу }

    TYPE

    mas=array[0..400] of real;

    Var

    X, Y: mas; { текущие значения переменных Х и Y }

    Xmin, Xmax, t, tmin, tmax, { минимальное и максимальное значения Х на графике }

    Ymin, Ymax, { минимальное и максимальное значения Y на графике }

    DeltaX, DeltaY, { диапазоны изменения X и Y в пределах рисунка }

    Dt, R, { шаг построения графика по t }

    Xj, Yi,

    Dxs, Dys, { Шаги разметки осей по Х и по Y }

    Part, Pole, { Доля экрана, занятая рисунком и доля чистого поля с каждой стороны }

    Mx, My {Коэффициенты пересчета Х в J и Y в I}

    : real;

    Imin, Imax, { координаты экрана, соответствующие Ymin и Ymax }

    Jmin, Jmax, { координаты экрана, соответствующие Xmin и Xmax }

    J, I, N, k, { текущие значения переменных координат экрана }

    JAll, IAll, {Максимальные размеры экрана (в пикселях) по X и Y}

    J0, I0, {Координаты на экране точки пересечения осей графика }

    DeltaJ, DeltaI { Экранные размеры рисунка по Х и Y в пикселях}

    : integer;

    Riska: String[5]; { Строка для вывода чисел у рисок осей }

    GraphDrv, { Тип графического драйвера }

    GraphMode: integer; { Устанавливаемый графический режим }

    Code: word; { Код завершения инициализации графики }

    BEGIN { Начало программы }

    {1.Задание констант, стандартных значений }

    tmin: =0; tmax: =2.0*Pi;

    Dxs: =0.5; Dys: =0.5;

    Part: =0.6; N: =401;

    {4.Расчет характеристик функций }

    Dt: =(tmax-tmin)/(N-1);

    Xmax: =-100;

    Xmin: =100;

    Ymax: =-100;

    Ymin: =100;

    For k: =0 to N-1 do

    begin

    t: =tmin+Dt*k;

    R: =2.0+0.5*cos(8.0*t);

    X[k]: =R*cos(t);

    Y[k]: =R*sin(t);

    if X[k]> Xmax then Xmax: =X[k];

    if X[k]< Xmin then Xmin: =X[k];

    if Y[k]> Ymax then Ymax: =Y[k];

    if Y[k]< Ymin then Ymin: =Y[k];

    end;

    DeltaX: =Xmax-Xmin;

    DeltaY: =Ymax-Ymin;

    {5.Открытие графики с проверкой правильности срабатывания}

    GraphDrv: =0; {пусть определяет режим сам }

    InitGraph(GraphDrv, GraphMode, 'C: \voronov\STUD\TP\BGI');

    Code: =GraphResult;

    if Code< > 0 then {если завершение с кодом не 0 - закончить программу}

    Begin

    writeln('Ошибка открытия графики с кодом: ', Code);

    Halt; { Останов программы }

    End;

    {6.Настройка фона}

    SetBkColor(15); {Фон белый }

    ClearDevice; {Очистка экрана}

    {7.Расчет параметров графика на экране}

    JAll: =GetMaxX;

    IAll: =GetMaxY;

    Pole: =(1.0-Part)/2.0;

    Jmin: =Round(Pole*JAll);

    Jmax: =Round((1.0-Pole)*JAll);

    Imin: =Round((1.0-Pole)*IAll);

    Imax: =Round(Pole*IAll); { Imin > Imax!!! }

    DeltaJ: =Jmax-Jmin;

    DeltaI: =Imax-Imin;

    {8.Расчет масштабных коэффициентов перехода от X к J и от Y к I}

    Mx: =DeltaJ/DeltaX;

    My: =DeltaI/DeltaY;

    {9.Построение графика функции}

    {9.1.Задание характеристик линии}

    SetColor(4); { цвет красный }

    SetLineStyle(0, 0, 2);

    {9.2.Начальная точка графика}

    J: =Jmin+Round((X[0]-Xmin)*Mx);

    I: =Imin+Round((Y[0]-Ymin)*My);

    MoveTo (J, I);

    {9.3.Цикл расчета экранных координат графика (X-> J, Y-> I) и проведения отрезков}

    for k: =1 to N-1 do

    Begin

    J: =Jmin+Round((X[k]-Xmin)*Mx);

    I: =Imin+Round((Y[k]-Ymin)*My);

    LineTo(J, I);

    End;

    {10.Построение осей координат }

    SetColor(8); { цвет темно-серый }

    SetLineStyle(0, 0, 3); { сплошная толстая }

    J0: =Jmin+Round((0-Xmin)*Mx);

    I0: =Imin+Round((0-Ymin)*My);

    Line(J0, Imin, J0, Imax); {Построение оси Y (где X=0)}

    Line(Jmin, I0, Jmax, I0); {Построение оси Х (где Y=0)}

    {11.Разметка осей}

    SetLineStyle(0, 0, 0); { сплошная тонкая }

    SetTextStyle(0, 0, 0); { шрифт стандартный, подпись горизонтальна }

    SetTextJustify(1, 2); {Размещение текста симметрично, относительно заданной

    точки по горизонтали и ниже точки по вертикали}

    J: =J0;

    Xj: =0;

    while J< =Jmax+1 do {от начала координат - вправо }

    begin

    Line(J, Imin, J, Imax);

    Str(Xj: 3: 1, Riska);

    OutTextXY(J, I0+5, Riska);

    Xj: =Xj+Dxs;

    J: =Jmin+Round((Xj-Xmin)*Mx);

    end;

    J: =J0;

    Xj: =0;

    while J> =Jmin do {от начала координат - влево }

    begin

    Line(J, Imin, J, Imax);

    Str(Xj: 3: 1, Riska);

    OutTextXY(J, I0+5, Riska);

    Xj: =Xj-Dxs;

    J: =Jmin+Round((Xj-Xmin)*Mx);

    end;

    SetTextJustify(2, 1); {Размещение текста симметрично, относительно заданной

    точки по вертикали и левее точки по горизонтали }

    I: =I0;

    Yi: =0;

    while I> =Imax-1 do {от начала координат - вверх }

    begin

    Line(Jmin, I, Jmax, I);

    Str(Yi: 3: 1, Riska);

    OutTextXY(J0-10, I, Riska);

    Yi: =Yi+Dxs;

    I: =Imin+Round((Yi-Ymin)*My);

    end;

    I: =I0;

    Yi: =0;

    while I< =Imin do {от начала координат - вниз }

    begin

    Line(Jmin, I, Jmax, I);

    Str(Yi: 3: 1, Riska);

    OutTextXY(J0-10, I, Riska);

    Yi: =Yi-Dxs;

    I: =Imin+Round((Yi-Ymin)*My);

    end;

    {12.Подпись графика}

    SetColor(1); { цвет синий }

    SetTextJustify(1, 1); {Размещение текста симметрично, относительно заданной

    точки по горизонтали и по вертикали}

    I: =Round(IAll*(1-Pole/2)); {середина нижнего поля}

    OutTextXY(JAll div 2, I, 'X=(2+0.5cos(8t))cos(t), Y=(2+0.5cos(8t))sin(t)');

    {13.Задержка графика на экране }

    while Not KeyPressed do;

    {14. Вывод графика на печать (на принтер) - только если он подключен }

    {Pr; }

    {14.Закрытие графического режима }

    CloseGraph;

    END.

    Рисунок 11. Результат работы программы 32-го варианта

    Варианты заданий

    Таблица 29. Варианты заданий лабораторной работы N9

      N вар Функция или параметрическое уравнение Аргумент и его диапазон   Цвет
    текста/ фона графика/ осей координат
      Парабола Y=1.3*X2-1.8 X [-1.2, 1.2] голубой белый зеленый голубой
      Окружность X=0.5+2*cos(t) Y=0.2+2*sin(t) t [0, 2p] красный темно-серый светло-красный коричневый
      Степенная функция Y=X3-2* X2+X X [-1, 3] розовый темно-серый светло-зеленый светло-серый
      Эллипс x=3*cos(t), y=15*sin(t) t [0, 2p] синий светло-серый светло-синий темно-серый
      Конхоида Никомеда X=A+B*cos(f) Y=A*tg(f)+B*sin(f) f [1.5, 4.5] A=1, B=2 светло-красный темно-серый светло-зеленый красный
      Кардиоида X=4*cos(t)*(1+cos(t)) Y=4*sin(t)*(1+cos (t)) t [0, 2p] розовый красный синий розовый
      Дробно-рациональная функция Y=(1.5*X+3)/(X-2) X [-4.2, 1.9] светло-серый розовый голубой желтый
      Декартов лист X=3*A*t/(1+t3) Y=3*A*t*t/(1+t3) t [-0.5, 10] A=2 синий белый светло-синий светло-зеленый
      Функция синус Y=2.5*sin(X)+0.5 X [-2p, 2p] белый зеленый желтый коричневый
      Циссоида X=5*t2/(1+t2), Y=5*t3/(1+t2), t=tg(f) f [-p/4, p/4]   розовый черный зеленый белый
      Тригонометрическая функция Y=сos(X2) X [-2p, 2p] светло-зеленый светло-синий белый розовый
      Строфоида X=4*(t2-1)/(t2+1), Y=4*t*(t2-1)/(t2+1) t=tg(f) f [-p/2.5, p/2.5] темно-серый голубой белый желтый
      Тригонометрическая функция Y=tg(X)-2*X X [-p/2.5, p/2.5] зеленый синий фиолетовый черный
      Астроида X=3.5*cos3(t), Y=3.5*sin3(t) t [0, 2p] голубой белый светло-зеленый зеленый
      Арксинус Y=arcsin(0.5*X) X [-2, 2] темно-серый голубой светло-зеленый зеленый
      Эпициклоида X=(a+b)cos(t)-a*cos((a+b)*t/a), Y=(a+b)sin(t)-a*sin((a+b)*t/a) t [0, 2p] a=6, b=9 розовый фиолетовый голубой синий
      Логарифм Y=ln(X+2) X [-1.5, 5] зеленый красный желтый светло-зеленый
      Гипоциклоида X=2a*cos(f)+a*cos(2f) Y=2a*sin(f)-a*sin(2f) f [-p, p] a=1 белый розовый темно-серый голубой
      Арктангенс Y=3*arctg(X) X [-5, 5] светло-зеленый голубой синий светло-синий
      Эвольвента окружности X=a*cos(f)+a*f*sin(f) Y=a*sin(f)-a*f*cos(f) f [-9p, 9p] a=1.5 зеленый синий голубой черный
      Дробно-рациональная нелинейная функция Y = A + B/X + C/X2 X [0.18, 3] A=1, B=2, C=-0.5 темно-серый белый фиолетовый красный
      Леминиската X=r*cos(f) Y=r*sin(f) r=a*sqrt(2*cos(2f)) f [-p, p] светло-зеленый фиолетовый синий белый
      Локон Аньези Y=A3/(X2 + A2) X [-5, 5] A=2 зеленый белый темно-серый светло-зеленый
      Архимедова спираль X=r*cos(f) Y=r*sin(f) r=A*f f [-6p, 6p] A=1.5 розовый желтый синий светло-красный
      Трохоида(удлинненая циклоида) X=A*(f-B*sin(f)) Y=A*(1-B*cos(f)) f [-2p, 4p] A=1.5, B=1.3 темно-серый белый светло-красный фиолетовый
      Гиперболическая спираль X=(A*cos(f))/f Y=(A*sin(f))/f f [0.1, 10] A=3 фиолетовый зеленый светло-зеленый розовый
      Удлиненная эпициклоида X=5*cos(f)-2*cos(5f) Y=5*sin(f)-2*sin(5f) f [-p, p] светло-серый синий светло-синий красный
      Логарифмическая спираль X=r*cos(f) Y=r*sin(f) r=A*exp(B*f) f [0, 4] A=1.3, B=0.5 светло-зеленый синий белый зеленый
      Удлиненная гипоциклоида X=4*cos(f)+2*cos(4f) Y=4*sin(f)-2*sin(4f) f [0, 2p] темно-серый белый синий зеленый
      Улитка Паскаля X=2cos2(t)+3cos(t), Y=2*cos(t)sin(t)+3sin t t [0, 2p] коричневый желтый зеленый синий
      Показательная функция Y=exp(X2) X [-1, 2] белый красный красный темно-серый
      X=(2+0.5cos(8t))cos(t), Y=(2+0.5cos(8t))sin(t) t [0 до 2π ] синий белый красный темно-серый





    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.