Глаз для персонажа векторной графики

  Для простой анимации вполне подойдёт глаз в виде чёрного кружочка. Такой круг может иметь окантовку белого или другого подходящего цвета. Более сложное изображение глаза требует комбинации нескольких векторных фигур, а это не всегда удобно.
  Однако я, в своей программе, придумал, как изобразить глаз, используя только одну единственную фигуру - круг, придав кругу особые опции.

  Голубой круг с белой окантовкой в правой части иллюстрации не имеет особых опций. Строка, которая его описывает, выглядит так –

7>    14  92  291  40  2  6  0  0  27615  26409  3

В этой строке, вслед за координатами центра круга идёт число 40 – это радиус белой окантовки круга. Круг заполняется концентрическими окружностями голубого цвета толщиной в размер точки рисования, то есть, в 3 пикселя. Число 2 – это интервал между окружностями, и, поскольку интервал меньше толщины, заполнение круга выглядит плотным. Число 6 – это значение Плотности. Плотность большая пяти организует плотное заполнение.

  А теперь посмотрим на первую строку –

1>    14  316  123  80  2  3  55  14143  27615  15206  8

Плотность 3 – означает рисование окружностей тонким штрих-пунктиром, толщиной в 1 пиксель. Но интервал между окружностями равен 2, он остался прежним, и поэтому сквозь заполнение круга просматривается задний фон. А если фоном будет служить анфас лица, то такая радужная оболочка глаза будет вполне естественной и красивой.
  На всех последующих строках Плотность равна 6, и голубой круг поэтому плотный.

  Однако, откуда взялось верхнее веко, могущее сдвигаться вправо или влево, и нижнее веко, прикрывающее глаз снизу? Откуда взялся чёрный зрачок и яркий блик поверх него?
  Никаких дополнительных фигур векторной графики для этого  не потребовалось - вся информация содержится в той же первой строке. Заморачиваться этими цифрами не стоит. Главное – создать окружность, а затем изменить её соответствующим образом.
  Привожу выдержку из раздела Help –

     Впоследствии, сделанную окружность можно заполнять тонкими линиями
  разного вида, если поставить значение Плотности от 1 до 5. Расстояние
  между кругами заполнения регулируется цифрой на кн.Разрежение следа.
    В режиме Показа, нажимая клавишу ъ, выбранную окружность можно
  сделать похожей на глаз, снабдив её чёрным зрачком и веком, а клавишей
   Ъ верх.рег. добавлять и убирать нижнее веко, окрашенное в цвет фона.
  Без верхнего века с нижним можно сделать кружочек, похожий на нос.
  Снабжая зрачок верхним веком можно несколько раз нажимать клавишу ъ,
  смещая веко вправо или влево, при этом значения Градиента >0 будут
  создавать блик и смещать зрачок по углам квадрата 1-3 7-9.

  Вся прелесть состоит в том, что столь подробное изображение глаза помещается в одной единственной фигуре, в одной единственной строке.
  При увеличении или даже при сильном уменьшении своего размера, глаз продолжает выглядеть вполне естественным, Некоторые параметры подстроить нужно, но не очень сильно.
  Какая строка относится к какому глазу, вы можете разобраться, рассматривая иллюстрацию и оценивая радиус круга, изображающего глаз – 4, 8, 10, 40 и 80.

  Таким образом, простейшая векторная фигура – круг, способна довольно естественно изобразить глаз, если немного расширить свойства этой фигуры, снабдив её для этого особыми опциями.

  Почему я принялся за это дело? Ну, во-первых, результат оказался полезен. А во-вторых, в строке, описывающей простой круг, имелось пустое место – два нуля, не несущие никакой информации. Для других фигур на этом месте стоят координаты точки начала заливки. Но круг, в таких указаниях не нуждается – он заполняется из центра. Вот я и подумал, «не пропадать же добру».
  И вот, на месте первого нуля у меня стоит описание положения зрачка и смещения верхнего века, а на месте второго нуля - цвет нижнего века. Такой прямо "кладезь информации" получился.

  При переходе на обычный стандарт, чтобы изобразить глаз, к первоначальному кругу нужно добавить ещё два других круга – зрачок с бликом, и две кривых Безье – для верхнего и для нижнего века. А в моей записи, общей для всех векторных фигур - строкой из 11-ти целых чисел, для изображения глаза ничего дополнительного добавлять не нужно


__________
29.09.2021


Рецензии