Информатика -продвинутый курс



         

НЕКОТОРЫЕ ПРИЕМЫ ПРОГРАММИРОВАНИЯ - часть 10


Опишем типичную процедуру построения изолиний на экране компьютера. На старте мы имеем двумерную таблицу значений некоторой величины А, полученную в ходе математического моделирования; числа в этой таблице соответствуют значениям этой величины в узлах пространственной сетки (рис. 7.5).

Зададим некоторый, совершенно условный, пространственный шаг h

между соседними узлами по горизонтали и вспомогательную систему координат, в которой узел (1, 1) имеет координату (0, 0), узел (1, 2) - координату (h, 0), узел (1, 3) - координату (2h, 0) и т.д. Если шаг по вертикали h*, то узел (i, j)

в этой системе имеет координату ((i-1) • h, (y-1) • h*).

Предварительно найдем в таблице наибольшее и наименьшее значения величин аij -

допустим, это amin и аmах. Пусть b - некоторое промежуточное значение: amin < b < amax. Обсудим в общих чертах, как построить изолинию A = b. Будем для этого (в цикле) просматривать вначале все пары ближайших чисел в первой строке таблицы в поисках такой пары, для которой b находится «внутри». Допустим, число b находится между a1k и a1,k+1, т.е. либо a1k < b < a1,k+1, либо a1k > b > a1,k+1.

Рис. 7.5. Пространственная сетка и соответствующая ей таблица значений величины А

С помощью линейной интерполяции найдем соответствующую горизонтальную координату точки, в которой А = b:

(координата у

определяется номером горизонтальной линии; в данном случае у = 0).

Найденные координаты запомним и просмотрим первую строку в таблице до конца, затем просмотрим вторую строку и т.д. Покончив с просмотром строк, мы получим часть точек, соответствующих изолинии А = b.

После этого займемся просмотром столбцов. Допустим, во втором столбце нашлась пара чисел, для которой число b находится между аp2

и ap+1,2. Она дает следующую точку для изолинии. Закончив просмотр всех столбцов, мы получим максимально возможный набор координат точек, принадлежащих данной изолинии. Выведя их на экран в нужном масштабе, получим точечное изображение изолинии А = b, после чего можем, взяв другое значение b, построить следующую изолинию.


Содержание  Назад  Вперед