Как нарисовать окружность по уравнению окружности? - Turbo Pascal
Формулировка задачи:
Дана формула
Построить по этой формуле окружность.
Помогите!
Решение задачи: «Как нарисовать окружность по уравнению окружности?»
textual
Листинг программы
uses graph; function F1(x:real):real; begin if x=0 then F1:=0 else F1:=exp(ln(x*x)/3) {функция в скобке (y+...)} end; function F2(x,r:real):real; begin F2:=sqrt(r*r-x*x)-F1(x){r>=x} end; var mx,my,x:real; a,b,r,x0,y0,i:integer; s:string; begin x0:=0; initgraph(x0,y0,'');{инициализация графического режима} a:=-9; b:=9;{интервал по Х} r:=10; x0:=getmaxX div 2;{начало координат по Х} mx:=(x0-30)/10;{масштаб по Х} y0:=getmaxY div 2;{начало координат по Y} my:=(y0-20)/10; line(0,y0,getmaxX,y0);{оси} line(x0,0,x0,getmaxY); 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)); {подпись оси У} str(i,s); outtextXY(x0-35,y0-round(i*my),s);{соответственно засечкам} outtextXY(x0-40,y0+round(i*my),'-'+s); 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); {подпись оси Х} outtextXY(x0+round(i*mx)+5,y0+10,s); outtextXY(x0-round(i*mx)+5,y0+10,'-'+s); end; {центр} outtextXY(x0-15,y0+10,'0'); {подписи концов осей} outtextXY(getmaxX-10,y0-10,'X'); outtextXY(x0+5,10, 'Y'); {график} x:=a; while x<=b do begin putpixel(x0+round(x*mx),y0+round(F2(x,r)*my),12); putpixel(x0+round(x*mx),y0-round(F2(x,r)*my),12); x:=x+0.001; end; {название} setcolor(12); outtextXY(50,10,'x^2+(y+x^2/3)^2=r^2'); outtextXY(50,30,'int.[-10;10] r=10'); readln end.
Объяснение кода листинга программы
- Используется библиотека graph для работы с графиком.
- Определены две функции: F1 и F2. F1 вычисляет значение функции y=e^(ln(x*x)/3) для x=0. F2 вычисляет значение функции y=sqrt(r^2-x^2)-F1(x) для x и r, где r>=x.
- Объявлены переменные mx, my, x и r. mx и my - это координаты центра окружности, x и r - это параметры окружности.
- Инициализирован графический режим с помощью функции initgraph.
- Заданы начальные значения для координат центра окружности (x0, y0) и параметров окружности (a, b, r).
- Вычисляются значения координат центра окружности mx и my с помощью функций getmaxX, getmaxY и деления на 2.
- Вычисляется масштаб по оси X с помощью функции div.
- Вычисляется масштаб по оси Y с помощью функции div.
- Вычисляется значение функции F1 для x=a и сохраняется в переменной x0.
- Вычисляется значение функции F2 для x=a и r=r0 и сохраняется в переменной my.
- Рисуются оси X и Y с помощью функции line.
- Подписываются оси X и Y с помощью функций outtextXY.
- Вычисляется значение функции F1 для x=b и сохраняется в переменной x1.
- Рисуются засечки на оси Y с помощью функции line.
- Рисуются засечки на оси X с помощью функции line.
- Вычисляется значение функции F2 для x=b и r=r1 и сохраняется в переменной my1.
- Рисуются засечки на оси Y с помощью функций line и outtextXY.
- Рисуются засечки на оси X с помощью функций line и outtextXY.
- Вычисляется значение функции F1 для x=a+0.001 и сохраняется в переменной x2.
- Рисуются точки на окружности с помощью функции putpixel.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д