Как специалист по пользовательскому интерфейсу, меня часто просят создавать всплывающие подсказки и другие всплывающие окна, отображающие текст. Один из стилей, который, кажется, больше всего интересует клиентов, - это текст в комиксе. Я хотел бы создать эти всплывающие подсказки программно (в отличие от встраивания или ссылки на визуализированную графику), потому что эти всплывающие подсказки должны будут изменять размер во время выполнения в зависимости от того, сколько текста они должны держать.
Воздушные шары легко рисовать по большей части: круги, прямоугольники или прямоугольники с закругленными углами. Самой сложной частью для меня является хвост (маленькая стреловидная часть комического шарика, которая указывает на динамик). Если вы гуглите комический шар, вы увидите, что есть много разновидностей хвостов. Они, которые клиенты запрашивают у меня, чаще всего изогнуты. Например ...
http://www.macybugs.com/round%20bubble.PNG
и
http://thumb10.shutterstock.com.edgesuite.net/display_pic_with_logo/121360/121360,1222432252,2/stock-vector-vector-cartoon-speech-balloon-add-your-own-text-easily-17961022.jpg
Хвост всегда будет на дне шара, и он будет иногда указывать налево, а иногда - направо. Я некоторое время пытался придумать алгоритмы рисования хвоста, но я не доволен результатами. Я в основном спотыкаюсь в темноте, меняю переменные, смотрю на результаты и использую метод проб и ошибок, чтобы попытаться приблизиться к магическим числам, которые будут работать. «Работа» просто означает результат, который выглядит приятным, что, как я понимаю, субъективно. Большинство моих клиентов будут довольны тем, что выглядит достаточно хорошо и профессионально.
Я хочу, чтобы этот результат масштабировался. И было бы здорово, если бы он мог работать с как можно меньшим количеством входных данных, может быть, просто isFacingLeft, tailWidth и tailHeight (который может быть процентом от всего всплывающего окна). Возможно регулируемая кривая. Количество.
Если это имеет значение, я использую Flash / Actionscript, но любая система, имеющая какой-то графический движок черепахи, должна работать примерно так же: я работаю с этой стандартной перевернутой декартовой сеткой (y увеличивается вниз), координаты x и y, возможность перемещать перо, рисовать линии и рисовать кривые.
Одно предупреждение: Flash позволяет мне рисовать только 3-точечные кривые Безье - начальную точку, контрольную точку, конечную точку.
Примечание: воздушные шары не нужно масштабировать после того, как они нарисованы.