在对角线路径上对齐文本

时间:2010-08-07 05:30:49

标签: c# winforms text

我有两点在连接时画一条线。该线可以是垂直水平,垂直或(最常见)对角线。

我想沿着这条道路尝试文字。我正在使用C#和WinForms,但我认为这不像一些简单的伪代码那么重要,它可能包含一些数学(trig?),需要找到路径的角度来对齐文本。

2 个答案:

答案 0 :(得分:1)

如果您使用OnPaint()方法绘制文字,可以尝试此操作(reference):

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");

答案 1 :(得分:1)

使用Math.Atan2()计算角度。通过乘以180 / Math.Pi从弧度转换为度数。获取RotateTransform()的旋转中心是使文本与线正确对齐的关键步骤。 r * Math.Cos(角度)用于从线起点开始的X偏移,r * Sin(角度)用于Y偏移,其中r是距线起始点的偏移。通过字体的高度进行调整,使其高于线条。