# Извлечение кривых очертаний глифов

Извлечение кривых очертаний глифов и применение к ним геометрических преобразований.
 In[1]:= Xg = First[\!\(\* GraphicsBox[ FilledCurveBox[{{{0, 2, 0}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}}, {{1, 4, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}}}, {CompressedData[" 1:eJxdVQ1MVWUYZkwBSYlREhHylxJEF7hy/7xw7n3O/UESUCFTMnOMoFECkSGw YioaKhkJiZo5wEBgLWJkakbEGENyasCIUiKxAjV0dP0rMXP1vee7+9g62925 zznn/b73fd7neb+QzNfTsl1dXFyK2Y/uoe0bc6pVKsRcXOhWptUB2vUdzyar sXbJsdNFY7F4/0C+z/atGlwLU3u0dsagqUDyPD+uwy8rKg/kp6nwTveZj+1F BlwomQxTJ0biZe/0Jcc8jAiIZgvKETz+cBzgeb6xQArH7NVeqqOSJHCN36zV XpVmgQfvPjfedBbYdT31ZOCpCHwwVWrWtsnwa1v661vDz+D58aZDvVUWTD8Y Lpm8Eg0dS3euq5Xnf1wtcOvNoZTM9liBC3Oqp0qDtJhiy5afteCI/cTtB6t0 eIHqXG+BsULOuLxSj8dZOqpbMor2ssSWG7A2K+7SijwZ+ynP7wxYQA8GIPAP VLfHDP6XpRVWbQJx6+Ji4PuHSvipnxWWrUMI8V0pwSedNtZBT+9/k9AWwBbe onPmaRK498/wdXsazAIr/JYAYW5l+6wP6fBNIUvUjfEzwjZ4UosNnexBjQzP VgrQwJJxeTB0VEaDP2tIWKzAY4yufeNqgRMYHcN+auwg3o/LGAodvbf5tRjM c43c6fuqDBcq9PNo/H7/k5tDC2TOb1UU5/0UMEupNwoTrD3BGTM46mito6XZ JLB0iQnHKw6bzUxoFWrcYst4T2tR0lXvH12rwx+l9CIWO0hXPxqwXdGXFr7U f40RHx1k14gef1H/X4nDYg9W6IQRio7z4nGmiC3kkDDNaOvZJEGheTmQSWXe k3CH4opkgR+hDTZZBX6Dybsx2A6Hkkc8HlaxAooTnHwa8RndBpZiIdHTqUfp o5RYIu9PvUbgZsUnMQIr9c6J4frbkMjjS6PQf45dyYm8z64qXGAu8FyzjPNY EIWX9vSwN0n8+d0YgRVfdMUKXNcb3L4xUY/mQ/RnGcLVRIwRRlZ+V30itLHs uh3P9zuXgGvUR+a7RvLBEZuTP+CrwPLrqeEWgRWf90DgAfLn1xKqaVuHM/6O AaqdviP9j5kQSP5wGDHM2po+BzCQr27E8zznyk4ezPiZ6JuQUaz0HUhl2/js tfB5ckJGH6siR7bib/ZZIXu+lW4fWnmcxipwnaOlL+nLGazocZENp5P0FXKB FVWU5xYb1rCxUxtkxQ32uX7ExnkZsOAw+cLNznWdN4O5HmSBrxAck9FC/Lra Ob8dMr5g8u67b+N+3C1zfUYkOOMsfP51J3D/N81g7i+rwO/lXmUZsLml+DwB 3YyWi1k2Pnf/sSOXfN1rw9uKnuxOv9ux37o79+qoDfkUnmbndQXNYK4ji8Db WJa535o5brCK/inYAu6H2Xo8RfV8auL1HNSii+aMTsKLNA/naaAjPX0fx+dx xmK8y9o8uM3o1HsUvGhuMD8p81AdjpWZNLjMTr+GCPwmzTtzgMBKnxzzuU8i zXz+jHgjgvj2N6Gc5lO5O7KUc0ZCPM2TfFd0kG5Pxgn89DoSnFHgGvJLnQGT 1OcUd4yRjlbpeZ92eMOD2pesQwqTTUb2fN4vu5afY2VPcH/2aOBO3+WGCByk JLRIYK5v57ll0uL/5+t/DcQpTA== "], CompressedData[" 1:eJxTTMoPSmViYGAQBmIQrWHIsUYmSstBQHfT3Pfp5g6rPl7yTRJQdzh3BgTM HCDyKg7rZKJSrOvNHOa9X37M21wJzjcxBgF5OF8PaMxyN2kHj22f/17ZYeag FdN/6OsKCYeql2qGHDrmDmpsjVOducUg6uebO6jc/lmXtUcEYp+PBZx/D0SZ WML5+0omS7Bcs3SQ0b+rwtYo6mB33793up+VA/f1xQW2XOIOUZZbTpTNs3L4 BVQNVOogBzT+/nsrhyJbruuLP0g5NIGFrR0KhJoPnFKUg/NbDpxa6FqmBOdf Afo+wlLNgS2MT3fTXUsH9PABAM3qfG8= "]}]]\)]; Graphics[{Opacity[0.3], Table[{Translate[Rotate[g, t, {0, 0}], {1.25, -1.25}]}, {t, \[Pi]/6, 2 \[Pi], \[Pi]/6}], Opacity[1], EdgeForm[Black], Table[{ColorData["TemperatureMap", t/(2 \[Pi])], Rotate[g, t, {0, 0}]}, {t, \[Pi]/6, 2 \[Pi], \[Pi]/6}]}]
 Out[1]=
 In[2]:= Xog = First[\!\(\* GraphicsBox[ FilledCurveBox[{{{0, 2, 0}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, { 1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {0, 1, 0}, { 1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, { 1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {0, 1, 0}, {1, 3, 3}, {1, 3, 3}, { 1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}}, {{1, 4, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}, {1, 3, 3}}}, {CompressedData[" 1:eJxdVQ1MVWUYZkwBSYlREhHylxJEF7hy/7xw7n3O/UESUCFTMnOMoFECkSGw YioaKhkJiZo5wEBgLWJkakbEGENyasCIUiKxAjV0dP0rMXP1vee7+9g62925 zznn/b73fd7neb+QzNfTsl1dXFyK2Y/uoe0bc6pVKsRcXOhWptUB2vUdzyar sXbJsdNFY7F4/0C+z/atGlwLU3u0dsagqUDyPD+uwy8rKg/kp6nwTveZj+1F BlwomQxTJ0biZe/0Jcc8jAiIZgvKETz+cBzgeb6xQArH7NVeqqOSJHCN36zV XpVmgQfvPjfedBbYdT31ZOCpCHwwVWrWtsnwa1v661vDz+D58aZDvVUWTD8Y Lpm8Eg0dS3euq5Xnf1wtcOvNoZTM9liBC3Oqp0qDtJhiy5afteCI/cTtB6t0 eIHqXG+BsULOuLxSj8dZOqpbMor2ssSWG7A2K+7SijwZ+ynP7wxYQA8GIPAP VLfHDP6XpRVWbQJx6+Ji4PuHSvipnxWWrUMI8V0pwSedNtZBT+9/k9AWwBbe onPmaRK498/wdXsazAIr/JYAYW5l+6wP6fBNIUvUjfEzwjZ4UosNnexBjQzP VgrQwJJxeTB0VEaDP2tIWKzAY4yufeNqgRMYHcN+auwg3o/LGAodvbf5tRjM c43c6fuqDBcq9PNo/H7/k5tDC2TOb1UU5/0UMEupNwoTrD3BGTM46mito6XZ JLB0iQnHKw6bzUxoFWrcYst4T2tR0lXvH12rwx+l9CIWO0hXPxqwXdGXFr7U f40RHx1k14gef1H/X4nDYg9W6IQRio7z4nGmiC3kkDDNaOvZJEGheTmQSWXe k3CH4opkgR+hDTZZBX6Dybsx2A6Hkkc8HlaxAooTnHwa8RndBpZiIdHTqUfp o5RYIu9PvUbgZsUnMQIr9c6J4frbkMjjS6PQf45dyYm8z64qXGAu8FyzjPNY EIWX9vSwN0n8+d0YgRVfdMUKXNcb3L4xUY/mQ/RnGcLVRIwRRlZ+V30itLHs uh3P9zuXgGvUR+a7RvLBEZuTP+CrwPLrqeEWgRWf90DgAfLn1xKqaVuHM/6O AaqdviP9j5kQSP5wGDHM2po+BzCQr27E8zznyk4ezPiZ6JuQUaz0HUhl2/js tfB5ckJGH6siR7bib/ZZIXu+lW4fWnmcxipwnaOlL+nLGazocZENp5P0FXKB FVWU5xYb1rCxUxtkxQ32uX7ExnkZsOAw+cLNznWdN4O5HmSBrxAck9FC/Lra Ob8dMr5g8u67b+N+3C1zfUYkOOMsfP51J3D/N81g7i+rwO/lXmUZsLml+DwB 3YyWi1k2Pnf/sSOXfN1rw9uKnuxOv9ux37o79+qoDfkUnmbndQXNYK4ji8Db WJa535o5brCK/inYAu6H2Xo8RfV8auL1HNSii+aMTsKLNA/naaAjPX0fx+dx xmK8y9o8uM3o1HsUvGhuMD8p81AdjpWZNLjMTr+GCPwmzTtzgMBKnxzzuU8i zXz+jHgjgvj2N6Gc5lO5O7KUc0ZCPM2TfFd0kG5Pxgn89DoSnFHgGvJLnQGT 1OcUd4yRjlbpeZ92eMOD2pesQwqTTUb2fN4vu5afY2VPcH/2aOBO3+WGCByk JLRIYK5v57ll0uL/5+t/DcQpTA== "], CompressedData[" 1:eJxTTMoPSmViYGAQBmIQrWHIsUYmSstBQHfT3Pfp5g6rPl7yTRJQdzh3BgTM HCDyKg7rZKJSrOvNHOa9X37M21wJzjcxBgF5OF8PaMxyN2kHj22f/17ZYeag FdN/6OsKCYeql2qGHDrmDmpsjVOducUg6uebO6jc/lmXtUcEYp+PBZx/D0SZ WML5+0omS7Bcs3SQ0b+rwtYo6mB33793up+VA/f1xQW2XOIOUZZbTpTNs3L4 BVQNVOogBzT+/nsrhyJbruuLP0g5NIGFrR0KhJoPnFKUg/NbDpxa6FqmBOdf Afo+wlLNgS2MT3fTXUsH9PABAM3qfG8= "]}]]\)] /. FilledCurve[a__] :> JoinedCurve[a]; Graphics[{AbsoluteThickness[4], Opacity[0.3], Table[{Translate[Rotate[og, t, {0, 0}], {1, -1}]}, {t, \[Pi]/6, 2 \[Pi], \[Pi]/6}], Opacity[1], GrayLevel[0.2], Table[{Rotate[og, t, {0, 0}]}, {t, \[Pi]/6, 2 \[Pi], \[Pi]/6}], AbsoluteThickness[2], Table[{ColorData["BrightBands", t/(2 \[Pi])], Rotate[og, t, {0, 0}]}, {t, \[Pi]/6, 2 \[Pi], \[Pi]/6}]}]
 Out[2]=