Нарисовать график тангенса без асимптот - PascalABC.NET
Формулировка задачи:
помогите пожалуйста. нужно сделать так чтобы график был без асимптот
Решение задачи: «Нарисовать график тангенса без асимптот»
textual
Листинг программы
uses graphABC;
function F(x:real):real;
begin
F:=tan(x);
end;
var xn,xk,mx,my,dx:real;
x:real;
x0,y0,i:integer;
begin
xn:=-2*pi;xk:=2*pi;//интервал по Х
x0:=windowwidth div 2;
mx:=(x0-30)/xk;//масштаб по Х
y0:=windowheight div 2;
my:=(y0-20)/10;//по У
line(0,y0,windowwidth,y0);//оси
line(x0,0,x0,windowheight);
for i:=1 to 10 do//максимальное количество засечек в одну сторону
begin
line(x0-3,y0-round(i*my),x0+3,y0-round(i*my));//засечки на оси У
line(x0-3,y0+round(i*my),x0+3,y0+round(i*my));
line(x0+round(i*mx),y0-3,x0+round(i*mx),Y0+3);//засечки на оси Х
line(x0-round(i*mx),y0-3,x0-round(i*mx),Y0+3);
{подпись оси У}
textout(x0-35,y0-round(i*my),inttostr(i));//соответственно засечкам
textout(x0-35,y0+round(i*my),inttostr(-i));
{подпись оси Х}
textout(x0+round(i*mx),y0+10,inttostr(i));
textout(x0-round(i*mx),y0+10,inttostr(-i));
end;
{центр}
textout(x0+5,y0+10,'0');
{подписи концов осей}
textout(windowwidth-10,y0-10,'X');
textout(x0+5,10, 'Y');
//график
x:=xn;
dx:=0.001;
while x<=xk do
begin
if abs(cos(x))>0.1 then
setpixel(x0+round(x*mx),y0-round(F(x)*my),clGreen);
x:=x+dx;
end;
{название}
textout(x0+50,20,'График функции y=tgx');
textout(x0+50,40,'на интервале [-2pi;2pi]');
end.
Объяснение кода листинга программы
- Используемая библиотека: В коде используется библиотека GraphABC.Net.
- Функция F(x): Функция F(x) принимает аргумент x типа real и возвращает значение тангенса этого аргумента.
- Переменные:
- xn, xk, mx, my, dx: real;
- x: real;
- x0, y0, i: integer;
- Оси и засечки: Код рисует оси X и Y, а также добавляет засечки на этих осях с интервалом в 10 единиц.
- Центр и подписи концов осей: Код рисует точку в центре графика и подписывает концы осей X и Y.
- График: Код создает график функции y=tgx на интервале [-2pi;2pi]. Он начинает с точки (-2pi,0), затем последовательно проверяет точки на интервале, рисуя зеленый пиксель, если значение функции больше 0.1. Затем он переходит к следующей точке, увеличивая x на dx (по умолчанию равное 0.001).
- Название: Код добавляет название
График функции y=tgxи подписьна интервале [-2pi;2pi]. Список выполненных действий: - Объяснение использования библиотеки GraphABC.Net.
- Объяснение функции F(x).
- Перечисление и объяснение переменных.
- Описание процесса рисования осей и засечек.
- Описание процесса рисования центра и подписей концов осей.
- Описание процесса создания графика функции.
- Добавление названия и подписи к графику.