Maxima Manual: Функции и переменные для карты мира

Previous: Функции и переменные для картин, Up: Пакет draw [Contents][Index]

### 46.4 Функции и переменные для карты мира

Функция: region_boundaries (x1,y1,x2,y2)

  Определяет многоугольные сегменты из глобальной переменной `boundaries_array`, содержащиеся внутри прямоугольника с вершинами (x1,y1) (верхний левый) и (x2,y2) (нижний правый).

  Пример:

  Возвращает номера сегментов для северной Италии.

      (%i1) load("draw")$
      (%i2) load("worldmap")$
      (%i3) region_boundaries(10.4,41.5,20.7,35.4);
      (%o3)                [1846, 1863, 1864, 1881, 1888, 1894]
      (%i4) draw2d(geomap(%))$

Функция: numbered_boundaries (nlist)

  Строит многоугольные сегменты (границы), обозначаемые числами (координаты в `boundaries_array`). Эта функция очень полезна при создании географических объектов.

  Пример:

  Карта Европы, с границами, обозначенными номерами компонент в `boundaries_array`.

      (%i1) load("draw")$
      (%i2) load("worldmap")$
      (%i3) european_borders:
                 region_boundaries(-31.81,74.92,49.84,32.06)$
      (%i4) numbered_boundaries(european_borders)$

Функция: make_polygon (nlist)

  Возвращает объект `polygon`, построенный из индексов границ. Аргумент nlist – список компонент в массиве `boundaries_array`.

  Пример:

  Бутан определяется номерами компонент 171, 173 и 1143, так что `make_polygon([171,173,1143])` добавляет массив координат `boundaries_array[171]`, `boundaries_array[173]` и `boundaries_array[1143]` и возвращает объект `polygon`, пригодный для изображения функцией `draw`. Для того чтобы избежать сообщений о ошибках, массивы должны быть совместимы в том смысле, что два последовательных массива имеют общие предельные координаты. В этом примере, две первые компоненты `boundaries_array[171]` равны двум последним компонентам `boundaries_array[173]`, и две первые компоненты `boundaries_array[173]` равны двум первым компонентам `boundaries_array[1143]`. В целом, числа 171, 173 и 1143 (именно в этом порядке) совместимы и цветной многоугольник может быть построен.

      (%i1) load("draw")$
      (%i2) load("worldmap")$
      (%i3) Bhutan;
      (%o3)                        [[171, 173, 1143]]
      (%i4) boundaries_array[171];
      (%o4) {Array:
             #(88.750549 27.14727 88.806351 27.25305 88.901367 27.282221
               88.917877 27.321039)}
      (%i5) boundaries_array[173];
      (%o5) {Array:
             #(91.659554 27.76511 91.6008 27.66666 91.598022 27.62499
               91.631348 27.536381 91.765533 27.45694 91.775253 27.4161
               92.007751 27.471939 92.11441 27.28583 92.015259 27.168051
               92.015533 27.08083 92.083313 27.02277 92.112183 26.920271
               92.069977 26.86194 91.997192 26.85194 91.915253 26.893881
               91.916924 26.85416 91.8358 26.863331 91.712479 26.799999
               91.542191 26.80444 91.492188 26.87472 91.418854 26.873329
               91.371353 26.800831 91.307457 26.778049 90.682457 26.77417
               90.392197 26.903601 90.344131 26.894159 90.143044 26.75333
               89.98996 26.73583 89.841919 26.70138 89.618301 26.72694
               89.636093 26.771111 89.360786 26.859989 89.22081 26.81472
               89.110237 26.829161 88.921631 26.98777 88.873016 26.95499
               88.867737 27.080549 88.843307 27.108601 88.750549
               27.14727)}
      (%i6) boundaries_array[1143];
      (%o6) {Array:
             #(91.659554 27.76511 91.666924 27.88888 91.65831 27.94805
               91.338028 28.05249 91.314972 28.096661 91.108856 27.971109
               91.015808 27.97777 90.896927 28.05055 90.382462 28.07972
               90.396088 28.23555 90.366074 28.257771 89.996353 28.32333
               89.83165 28.24888 89.58609 28.139999 89.35997 27.87166
               89.225517 27.795 89.125793 27.56749 88.971077 27.47361
               88.917877 27.321039)}
      (%i7) Bhutan_polygon: make_polygon([171,173,1143])$
      (%i8) draw2d(Bhutan_polygon)$

Функция: make_poly_country (country_name)

  Строит многоугольники, необходимые для изображения страны в цвете. Если есть острова, то страна определяется более чем одним многоугольником.

  Пример:

      (%i1) load("draw")$
      (%i2) load("worldmap")$
      (%i3) make_poly_country(India)$
      (%i4) apply(draw2d, %)$

Функция: make_poly_continent (continent_name)
Функция: make_poly_continent (country_list)

  Строит многоугольники, необходимые для изображение континента или списка стран в цвете.

  Пример:

      (%i1) load("draw")$
      (%i2) load("worldmap")$
      (%i3) /* A continent */
            make_poly_continent(Africa)$
      (%i4) apply(draw2d, %)$
      (%i5) /* A list of countries */
            make_poly_continent([Germany,Denmark,Poland])$
      (%i6) apply(draw2d, %)$

Previous: Функции и переменные для картин, Up: Пакет draw [Contents][Index]