Сформировать точку, движущуюся по контуру треугольника с заданными размерами и расположением - QBasic

Узнай цену своей работы

Формулировка задачи:

Собственно сабж в заголовке. Прошу помощи

Решение задачи: «Сформировать точку, движущуюся по контуру треугольника с заданными размерами и расположением»

textual
Листинг программы
DEFSNG D-E, S, X-Y
DEFLNG I
CLS
INPUT "Vvedite A(x,y)"; x1, y1
INPUT "Vvedite B(x,y)"; x2, y2
INPUT "Vvedite C(x,y)"; x3, y3
ex1 = x2 - x1
ey1 = y2 - y1
s1 = SQR(ex1 ^ 2 + ey1 ^ 2)
dx1 = ex1 / s1
dy1 = ey1 / s1
 
ex2 = x3 - x2
ey2 = y3 - y2
s2 = SQR(ex2 ^ 2 + ey2 ^ 2)
dx2 = ex2 / s2
dy2 = ey2 / s2
 
ex3 = x1 - x3
ey3 = y1 - y3
s3 = SQR(ex3 ^ 2 + ey3 ^ 2)
dx3 = ex3 / s3
dy3 = ey3 / s3
 
dx = dx1
dy = dy1
x = x1 + dx
y = y1 + dy
 
SCREEN 12
 
LINE (x1, y1)-(x2, y2), 1
LINE (x2, y2)-(x3, y3), 1
LINE (x3, y3)-(x1, y1), 1
 
DO
   x = x + dx
   y = y + dy
   PSET (x, y), 14
   FOR i = 1 TO 300000: NEXT i
   PSET (x, y), 1
IF ABS(x - x2) < 1 AND ABS(y - y2) < 1 THEN
   dx = dx2
   dy = dy2
ELSEIF ABS(x - x3) < 1 AND ABS(y - y3) < 1 THEN
   dx = dx3
   dy = dy3
ELSEIF ABS(x - x1) < 1 AND ABS(y - y1) < 1 THEN
   dx = dx1
   dy = dy1
END IF
 
LOOP WHILE INKEY$ = ""
END

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

  1. Задаются размеры и расположение треугольника с помощью ввода координат вершин A(x1,y1), B(x2,y2), C(x3,y3).
  2. Вычисляются длины сторон треугольника и их нормали (направления) ex1, ey1, ex2, ey2, ex3, ey3.
  3. Вычисляются длины отрезков между вершинами и их серединами s1, s2, s3.
  4. Вычисляются координаты середины отрезка между вершинами dx1, dy1, dx2, dy2, dx3, dy3.
  5. Устанавливаются начальные координаты для движения точки (x,y) равными координатам одной из вершин, например, A(x1,y1).
  6. Задается основной цикл, который выполняет два действия: а) перемещает точку по контуру треугольника, меняя направление движения каждый раз, когда точка достигает одной из вершин; б) рисует линии между вершинами треугольника.
  7. Условие для цикла: повторять цикл, пока не будет нажата клавиша.
  8. Код не завершается, пока выполняется условие цикла.

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


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

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

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