Показать сообщение отдельно
Старый 16.10.2012, 13:21
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
1. Нужно вводить спейсинг, расстояние между буквами.
При уменьшении радиуса увеличивается длина дуги, а значит и длина строки символов, если первый и последний должны оставаться на месте. Расстояние между буквами должно увеличиваться. Им управляет угол каждого символа — arcAngle. Сейчас он заточен на сохранение расстояния между буквами при изменении радиуса, поэтому конец строки плавает. Нужно: посчитать длину дуги (строки) для текущего радиуса, между нужными координатами первого и последнего символа. Разделить ее на длину неизогнутой строки и получить коэфициент приращения спейсинга, на который домножать arcAngle.
2. Бесконечно большой — это глобальная константа Infinity. При смещении регулятора на 1 пиксель можно считать радиус за Number.MAX_VALUE (1.79769313486231e+308). Это уже число, с которым можно работать дальше, делить, отнимать и т.д.
__________________
Reality.getBounds(this);