Движение круга по правильному многоугольнику - Turbo Pascal
Формулировка задачи:
При помощи данного кода рисуется многоугольник:
Как заставить круг двигаться своим центром по сторонам многоугольника? Я сделал движение от вершине к соседней вершине, но это не очень красиво выглядит.
Решение задачи: «Движение круга по правильному многоугольнику»
textual
Листинг программы
while x<=c*sqrt(2) do begin if c*c*c*c+4*x*x*c*c)-x*x-c*c>=0 then begin y:=sqrt(sqrt(c*c*c*c+4*x*x*c*c)-x*x-c*c); x1:=xc+round(x*m); y1:=yc-round(y*m); y2:=yc+round(y*m); putpixel(x1,y1,12); putpixel(x1,y2,12); end; x:=x+0.01; end;
Объяснение кода листинга программы
- В цикле while выполняется движение круга по правильному многоугольнику, пока значение переменной x не превысит значение c*sqrt(2).
- Если значение выражения cccc+4xxcc)-xx-c*c>=0, то выполняется блок begin...end.
- Внутри блока begin...end переменная y вычисляется как квадратный корень из суммы квадратов чисел cccc и 4xxcc, вычтенных из xx и c*c.
- Переменные x1 и y1 вычисляются как средние значения x и y, округленные до ближайшего целого числа, с помощью функции round().
- Переменные y2 и x2 вычисляются как средние значения y и x, округленные до ближайшего целого числа, с помощью функции round().
- На экран выводятся пиксели, соответствующие точкам на графике, с помощью функции putpixel(). Координаты пикселей определяются как x1, y1, y2, x2. Значение 12 используется в качестве цвета пикселя.
- После завершения блока begin...end значение переменной x увеличивается на 0.01.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д