Как нарисовать окружность по уравнению окружности? - 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.

Объяснение кода листинга программы

  1. Используется библиотека graph для работы с графиком.
  2. Определены две функции: F1 и F2. F1 вычисляет значение функции y=e^(ln(x*x)/3) для x=0. F2 вычисляет значение функции y=sqrt(r^2-x^2)-F1(x) для x и r, где r>=x.
  3. Объявлены переменные mx, my, x и r. mx и my - это координаты центра окружности, x и r - это параметры окружности.
  4. Инициализирован графический режим с помощью функции initgraph.
  5. Заданы начальные значения для координат центра окружности (x0, y0) и параметров окружности (a, b, r).
  6. Вычисляются значения координат центра окружности mx и my с помощью функций getmaxX, getmaxY и деления на 2.
  7. Вычисляется масштаб по оси X с помощью функции div.
  8. Вычисляется масштаб по оси Y с помощью функции div.
  9. Вычисляется значение функции F1 для x=a и сохраняется в переменной x0.
  10. Вычисляется значение функции F2 для x=a и r=r0 и сохраняется в переменной my.
  11. Рисуются оси X и Y с помощью функции line.
  12. Подписываются оси X и Y с помощью функций outtextXY.
  13. Вычисляется значение функции F1 для x=b и сохраняется в переменной x1.
  14. Рисуются засечки на оси Y с помощью функции line.
  15. Рисуются засечки на оси X с помощью функции line.
  16. Вычисляется значение функции F2 для x=b и r=r1 и сохраняется в переменной my1.
  17. Рисуются засечки на оси Y с помощью функций line и outtextXY.
  18. Рисуются засечки на оси X с помощью функций line и outtextXY.
  19. Вычисляется значение функции F1 для x=a+0.001 и сохраняется в переменной x2.
  20. Рисуются точки на окружности с помощью функции putpixel.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.4 из 5
Похожие ответы