Всем привет. Вопрос возможно нубский, но поговорить мне с кем-то нужно
В общем - в программе предусмотрена вставка в чертеж многострочного текста. В окне программы я задаю параметры, которые может указать пользователь: высота текста, ширина текста, стиль текста и аннотативность. В коде есть метод, который определяет текущий масштаб scale - значение на которое меняется примитив при масштабировании (т.е. для масштаба 1:2 scale=2, при масштабе 2:1 scale=0.5 и т.д.)
Переходим к сути вопроса - мне нужно понять и сделать самый правильный и логичный вариант вставки. Рассуждаем:
1. Текст не аннотативный
В данном случае вроде все просто - задали для текста высоту и ширину. Допустим в окне программы задано: высота 2.5, ширина 180. Но возникает вопрос - нужно-ли высоту и ширину умножать на масштаб?
В виде кода имеем два варианта:
// 1 вариант
if(isAnnot)
{
mtxt.Annotation = AnnotationState.True;
mtxt.TextHeigh = txtH; //2.5
mtxt.Width = txtW;//180
}
// 2 вариант
{
mtxt.Annotation = AnnotationState.True;
mtxt.TextHeigh = txtH * scale; //2.5 * scale
mtxt.Width = txtW * scale;//180 * scale
}
2. Текст аннотативный
Тут уже интересней и запутаннее - теперь у нас есть высота и ширина в пространстве модели и пространстве листа. Если я задаю высоту 2.5 и ширину 180, а масштаб у меня 1:2, то вставленный аннотативный многострочный текст будет с размерами в пространстве модели вдвое меньшими заданным
В виде кода имеем два варианта (они в общем такие-же как и для не аннотативного):
// 1 вариант
if(!isAnnot)
{
mtxt.TextHeigh = txtH; //2.5
mtxt.Width = txtW;//180
}
// 2 вариант
{
mtxt.TextHeigh = txtH * scale; //2.5 * scale
mtxt.Width = txtW * scale;//180 * scale
}
Кстати, если для многострочного текста задать аннотативный текстовый стиль, но не указать аннотативность "насильно", то вставленный многострочный текст не будет аннотативным
В общем - как делать более правильно и логично?
Тип изображения "эротика" при загрузке изображения на форум поднял мне настроение на весь день))