В части М в заключении этого блока мы еще лучше модифицируем нашу склейку координат и покажем это на примере другого фрагмента из схемы замечательного города Сочи ─ 36 и 23 автобуса. Вот у нас есть изначальная схема, нарисованная в соответствии с частями с G по I, и она соответствует географическому расположению всех остановок, и она выглядит довольно тоскливо. Если эту схему нарисовать с помощью кода из части L, то мы получим, конечно, более аккуратную историю ─ остановки размещены красиво и равномерно, но склейка такова, что все остановки зеленого автобуса, почти все, расположены левее остановок синего автобуса. И с этим хочется что-то сделать: для этого нужно модифицировать склейку. Давайте вернемся к исходной схеме, расположим ее все-таки более равномерно по экрану, чтобы вам было понятнее, что происходит. Затем нам все-таки все еще нужна интерполяция между пересадочными и конечными остановками ─ вот, мы ее сделали ─ стало красивее, а теперь нужно посклеивать координаты. Итак, мы берем самый левый X ─ он получает номер один. Берем следующий X ─ остановка «Санаторная улица» ─ какой X она должна получить? Мы смотрим на всех ее соседей по маршрутам и на их номера. У этой остановки один сосед ─ остановка «Санаторий «Салют», она имеет номер один, поэтому наша остановка получает номер на единицу больше ─ номер два. Ну, и так далее: для остановок три, четыре, пять и шесть до «Парка «Ривьера», они получают номера с первого по шестой. Следующий X ─ со остановки «Целинная улица», ни один ее сосед пока не имеет номера, мы пока его не рассмотрели, и поэтому она получает номер один. Следующая остановка ─ «Целинная улица, дом 57», ее сосед ─ это наша предыдущая остановка «Целинная улица», она имеет номер один, поэтому наша остановка получает номер на единицу больше. Там мы доходим до остановки «Сбербанк» и получаем номера с первого по восьмой. И самое интересное на остановке «Морской вокзал»: мы смотрим на ее соседей, они имеют номера шесть и восемь ─ это остановки «Парк «Ривьера» и «Сбербанк» мы берем максимальный из этих номеров и нашей остановке присваиваем номер на единицу больше, не остановке, а X на самом деле, это ─ девятка. Соответственно, X остановки «Морской вокзал» получил номер девять. Ну, и наконец, остановка «Театральная» имеет одного соседа, это «Морской вокзал» с X с номером девять, и поэтому получает номер десять у своей X-координаты. И теперь мы склеиваем остановки с координатами один, остановки с координатами два и получаем вот такую красивую равномерную схему. С иксами ─ все. То же самое мы делаем с игреками, получается чуть-чуть аккуратнее. Ну, и все, у нас готова красивая схема маршрутов, и часть темы закончена.