У меня есть две точки, которые чертят линию при соединении. Строка может быть оба вертикальной горизонталью, вертикальной, или (обычно) диагональной.
Я хотел бы попробовать текст вдоль этого пути. Я использую C# и WinForms, но я думаю, что это не столь важно как некоторый простой psuedo-код, который может включать некоторую математику (аккуратный?) должен был найти, что угол пути выровнял текст к.
Используйте Math.Atan2 () для вычисления угла. Преобразуйте радианы в градусы, умножив на 180 / Math.Pi. Получение центра вращения для RotateTransform () является критическим шагом для правильного выравнивания текста с линией. r * Math.Cos (угол) для смещения по оси X от начальной точки линии, r * Sin (угол) для смещения по оси Y, где r - смещение от начальной точки линии. Отрегулируйте по высоте шрифта, чтобы он находился над линией.
Если вы рисуете текст в методе OnPaint()
, вы можете попробовать это (ссылка):
Graphics g = e.Graphics; // your graphics object.
float deg = 45F; // an angle, this one is 45 degrees
g.RotateTransform(deg);
g.DrawString("slopey text is fun");