ПОИСК Статьи Чертежи Таблицы Вопросы программироваГрафики при анализе проекта из "Машинная графика и автоматизация проектирования " Необходимо найти такое значение А, чтобы снаряд поразил мишень, находящуюся на расстоянии 250 м от места стрельбы. На рис. 57 показано несколько типичных траекторий. Хотя эта задача имеет простое аналитическое решение, будем решать ее методом npo 6 и ошибок для того, чтобы продемонстрировать основные идеи графического диалога. [c.78] Начнем с решения задачи методом проб и ошибок в стандартном режиме пакетной обработки. Результатом решения должно явиться получение достаточно близко расположенных точек траектории, через которые можно провести кривую. Координаты этих точек будем вычислять, решая параметрические уравнения движения в последовательные моменты времени. Затем, посмотрев, где расположена точка падения снаряда, можно выбрать новый угол стрельбы для следующего прогона программы. [c.78] Обратим внимание на то, что в программе массивы координат X и У были сформированы и записаны в памяти ЭВМ, чтобы ими затем мог воспользоваться оператор WRITE. Эти распечатанные пары чисел можно в качестве координат нанести вручную на миллиметровую бумагу, чтобы затем начертить по ним траекторию снаряда. [c.78] Поскольку из цикла с выполнением программы DISPLAY не предусмотрено выхода, траектория будет оставаться na экране дисплея неопределенно долго, Чтобы ввести новое значение угла прицеливания А, оператору следует воопользоваться операцией останова или прерывания и прекратить регенерацию изображения траектории. [c.80] 2 рассматривалось использование светового пера для размещения следящего перекрестья в нужном месте. Здесь будет показана другая основная функция светового пера управление прохождением программы и выбор вариантов с помощью операций указания . В только что рассмотренном примере схемы на рис. 60 управление выполнением программы осуществлялось двумя переключателями READ А и END. Теперь будет показано, как можно реализовать такое же управление посредством светового пера в режиме указания. Функция указания выполняется с помощью метки, символа, геометрического элемента или любой другой световой кнопки , воспроизводимой на экране дисплея. Когда световое перо видит такую кнопку , происходит установка соответствующего флага светового пера, который служит для ветвления программы точно так же, как и уже описанный флаг ручного переключателя. [c.82] После того как световое перо программой приведено в состояние готовности, такой его взвод устанавливает флаг оветового пера. Взвод светового пера происходит всякий раз, когда перо видит элемент изображения на экране. Ниже описаны примеры использования флага светового пера, операций с этим флагом и условные переходы по нему. [c.82] Флаг светового пера сигнализирует, произощел или нет взвод пера с момента, когда флаг был последний раз сброщен. С другой стороны, такой взвод не может произойти до тех пор, пока перо не будет приведено в готовность командой ЭВМ. Когда перо уже готово к работе, любая светящаяся точка на экране, попавшая в поле зрения пера, устанавливает его флаг LPF. Кроме того, световое перо снабжено ручным затвором. Этот затвор следует открывать, когда пером указывают на элемент изображения, который хотят увидеть . [c.82] Вместо того, чтобы изображать на экране каждую траекторию в отдельности, а потом ее изменять, теперь желательно вывести на экран сразу несколько траекторий. Тогда оператор, выбирая следующее подходящее значение угла А, сможет визуально интерполировать по этим кривым. Такая операция осуществима, если выделить специальное место в памяти для нужного числа графиков. При этом они будут последовательно и достаточно быстро воспроизводиться на экране. Пусть, например, необходимо изобразить четыре кривых. Для этого заводится двухмерный массив У N, J) для координат У. В этом массиве записываются ординаты для всех N точек, J=l, 2, 3, 4 указывает номер кривой. Как видно из схемы на рис. 62, J первоначально присваивается значение единицы для того, чтобы после ввода в программу значения угла А вычислять координаты точек первой кривой. Затем для этого значения угла А формируется дисплейный список пар координат X и У точно так, как и в предыдущем примере. После готовности дисплейного списка первая кривая воспроизводится на экране. [c.84] Если не был установлен флаг светового пера переключателя READ А (не было затребовано никаких дополнительных кривых), программа возвращается к дисплейному описку для изображения второй кривой, соответствующей значению J=2. Если, однако, массив координат кривой к этому моменту еще не сформирован, все значения ординат для нее в дисплейном списке будут равны О и изображение кривой на экране выродится в прямую, совпадающую с осью абсцисс. Отсюда все четыре кривые (в том чис.че, может быть, нуль-кривые) будут постоянно изображаться и регенерироваться на экране дисплея. [c.84] На данной схеме J есть номер последней запрошенной траектории. Тем самым переменная J как бы позволяет запомнить, какая из четырех кривых была введена ранее других. Когда необходимо добавить новую кривую, она заменяет в дисплейном списке самую древнюю , которая при этом стирается. [c.84] СВОЯ часть дисплейного списка, тогда как для остальных трех кривых соответствующие части списка остаются прежними. Таким образом, когда все четыре кривые уже воспроизведены на экране и вводится новое значение угла А, то самая новая кривая заменяет самую древнюю . Тем самым оператор получает возможность выводить на экран дисплея последовательно любое желаемое количество кривых. ЭВМ всегда изображает на экране последние четыре кривые, а все предыдущие забывает . [c.85] Обратим внимание на характер диалога человек — машина, который становится возможным с введением этого простого режима работы. Оператор с клавиатуры пульта может последовательно вводить возрастающие значения угла А, скажем, с приращениями 5°. С введением каждого нового угла ЭВМ выводит на экран дисплея изображение соответствующей траектории. Этот процесс продолжается, и на экране все время изображаются последние четыре траектории. Когда в последней траектории снаряд перелетает мишень, оператор выбирает промежуточные значения угла А для того, чтобы снаряд упал ближе к мишени. Таким способом он может очень быстро получить приближенное решение задачи с любой степенью точности. [c.86] Вернуться к основной статье