Как определить принадлежность введенных координат точки, определенной области - QBasic
Формулировка задачи:
Доброго времени суток, помогите определить принадлежность введенных координат точки, определенной области. Необходимую фигуру нарисовал, а вот с определением области непонятки.
Решение задачи: «Как определить принадлежность введенных координат точки, определенной области»
textual
Листинг программы
SCREEN 12 ' 640x480x4Bit VGA Scaler = 10 ' Масштаб DO: Kb$ = INKEY$ ' Случ точка x = RND * 24 - 12 y = RND * 24 - 12 ' Области НЕ выделены f1 = 0: f2 = 0: f3 = 0: f4 = 0 ' Левый круг (радиус 4) IF x * x + y * y <= 16 THEN f1 = -1 ' Трапеция IF (y < 6 AND y > 0) AND (x + 4 > y) AND x < 9 THEN f2 = -1 ' Парвый круг (радиус 5) IF (x - 6) * (x - 6) + y * y <= 25 THEN f3 = -1 ' Общая область(логич функция) IF (f1 OR f2) AND (NOT f3) OR (f3 AND x > 9) THEN f4 = -1 ' Проверяем cv = 8 IF f4 THEN cv = 15 PSET (320 + x * Scaler, 240 - y * Scaler), cv LOOP UNTIL Kb$ <> ""
Объяснение кода листинга программы
- Объявлены переменные:
- Scaler (масштаб)
- Kb$ (используется для проверки нажатий клавиш)
- x (координата X точки)
- y (координата Y точки)
- f1 (флаг для левого круга)
- f2 (флаг для трапеции)
- f3 (флаг для правого круга)
- f4 (флаг для общей области)
- cv (значение, которое будет использоваться для вывода точки)
- Задаются начальные значения переменных:
- Scaler = 10
- f1 = 0
- f2 = 0
- f3 = 0
- f4 = 0
- С помощью функции RND генерируются случайные координаты точки:
- x = RND * 24 - 12
- y = RND * 24 - 12
- Проверяются условия для определения принадлежности точки к определенным областям:
- Левый круг (радиус 4): если xx + yy <= 16, то f1 = -1
- Трапеция: если (y < 6 AND y > 0) AND (x + 4 > y) AND x < 9, то f2 = -1
- Правый круг (радиус 5): если (x - 6) (x - 6) + y y <= 25, то f3 = -1
- Общая область: если (f1 OR f2) AND (NOT f3) OR (f3 AND x > 9), то f4 = -1
- Проверяется условие для определения значения переменной cv:
- Если f4 = -1, то cv = 15 (точка будет выводиться)
- Если f4 = 0, то cv = 8 (точка будет выводиться)
- С помощью функции PSET выводится точка на экран по заданным координатам и с заданным значением cv.
- Цикл LOOP UNTIL Kb$ <> `` обеспечивает повторение процесса, пока не будет нажата клавиша.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д