Есть следующий метод:
/// <summary>
/// Метод для рисования под углом.
/// </summary>
/// <param name="g">graphics на котором рисуем</param>
/// <param name="s">строка</param>
/// <param name="from">точка поворота координат</param>
/// <param name="L">длина отрезка вдоль которого рисовать</param>
/// <param name="angle">угол поворота</param>
/// <param name="font">font выводимого текста</param>
/// <param name="bText">brush выводимого текста</param>
/// <param name="bBackground">brush фона</param>
void DrawString(Graphics g, string s, Point from, int L, int angle, Font font, Brush bText, Brush bBackground)
{
//определяем размеры текста
SizeF size = g.MeasureString(s, font);
//определяем отступы
int dx = (int)Math.Round((L - size.Width) / 2);
int dy = -1 * (int)Math.Round(size.Height / 2);
// Устанавливаем начало координат в точку from.
g.TranslateTransform(from.X, from.Y);
// Поворачиваем систему кооординат.
g.RotateTransform(angle);
//Рисуем подложку если нужно
if (bBackground != null)
g.FillRectangle(bBackground, dx, dy, size.Width, size.Height);
// Выводим надпись.
g.DrawString(s, font, bText, dx, dy);
// Поворачиваем систему кооординат обратно.
g.RotateTransform(-angle);
// Устанавливаем начало координат в первоначальную точку.
g.TranslateTransform(-from.X, -from.Y);
}
в результатах его работы имеется существенный недостаток, а именно если угол не кратен 90 градусам то выводимый текст рисуется с артефактами (точками вылезающими за границы букв), что недопустимо.
Подскажите как устранить этот недостаток?
Здравствуйте, Аноним, Вы писали:
А>в результатах его работы имеется существенный недостаток, а именно если угол не кратен 90 градусам то выводимый текст рисуется с артефактами (точками вылезающими за границы букв), что недопустимо.
Иногда текст и при 90 градусах криво показывается :о(
А>Подскажите как устранить этот недостаток?
Не использовать GDI. Попробуйте
http://www.antigrain.com или WPF.
Ну если всё-таки хочется, пожно и
побороться.
Все оказалось банально и просто:
e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
спасибо ветке
http://rsdn.ru/forum/dotnet.gui/903340.aspxАвтор: Vladislav_007
Дата: 17.11.04
Здравствуйте, Аноним, Вы писали:
А>Все оказалось банально и просто:
А><..>
А>спасибо ветке http://rsdn.ru/forum/dotnet.gui/903340.aspxАвтор: Vladislav_007
Дата: 17.11.04
Перевожу: «А вы все — м.даки»