2.1 Примеры программирования в Математике 83
порождают поверхность. Каждый такой многоугольник будет построен
командой Polygon. Поясним преобразование списка на простом приме-
ре.
Допустим, что список p имеет следующий простой вид
l = {{1, 2, 3}, {4, 5, 6}}
Здесь для простоты взята поверхность, заданная
всего шестью точками, причем, каждая тройка ко-
ординат одной точки графика обозначена цифрой.
Каждый элемент списка подвергнем циклическо-
му сдвигу влево
l1 = Map[RotateLeft, l] ⇒ {{2, 3, 1}, {5, 6, 4}}
и образуем список
num = {l, RotateLeft[l], RotateLeft[l1], l1} ⇒
{{{1, 2, 3}, {4, 5, 6}}, {{4, 5, 6}, {1, 2, 3}}, {{5, 6, 4}, {2, 3, 1}}, {{2, 3, 1}, {5, 6, 4}}}
Удалим в каждом элементе списка num последний элемент
num = Map[Drop[#, −1]&, num, {1}] ⇒
{{{1, 2, 3}}, {{4, 5, 6}}, {{5, 6, 4}}, {{2, 3, 1}}}
Удалим в каждом элементе второго уровня последний элемент
num = Map[Drop[#, −1]&, num, {2}] ⇒
{{{1, 2}}, {{4, 5}}, {{5, 6}}, {{2, 3}}}
Уберем лишние скобки
ee = Flatten[#, 1]&/@num ⇒
{{1, 2}, {4, 5}, {5, 6}, {2, 3}}
и полученный список-матрицу транспонируем
Transpose[ee] ⇒
{{1, 4, 5, 2}, {2, 5, 6, 3}}
Последние две команды можно объединить в одну
Transpose[Map[Flatten[#, 1]&, num]] ⇒