System.Drawing旋转DrawString

时间:2016-07-29 09:12:59

标签: asp.net vb.net system.drawing

我使用System.Drawing绘制位图和图形,gp。这种方法对我有用。

我之前用radius = 250绘制了一个圆圈。如下所示,有17个预先化的angle(nn),其文本水平打印到left(far)right(near),具体取决于90到270行。

我想使用radius = 250或任何其他方法在gp.RotateTransform(angle(nn))开始从中心径向向外的点处绘制文字。显然RotateTransform没有产生好的结果。

Dim txtBrush As New SolidBrush(Color.Blue)
Dim hFont As New System.Drawing.Font("Verdana", 10, FontStyle.Regular)
Dim format1 As New StringFormat(StringFormatFlags.NoClip)
Dim format2 As New StringFormat(StringFormatFlags.NoClip)
format1.LineAlignment = StringAlignment.Far
format1.Alignment = StringAlignment.Far
format2.LineAlignment = StringAlignment.Near
format2.Alignment = StringAlignment.Near

For nn = 0 To 17
    If angle(nn) >= 90 And angle(nn) <= 270 Then 'gp.RotateTransform(angle(nn))
        gp.DrawString(ephemeris(angle(nn)), hFont, txtBrush, 250 * Math.Cos(angle(nn) * Pi / 180) + xCenter, -250 * Math.Sin(angle(nn) * Pi / 180) + yCenter, format1)
    Else
        gp.DrawString(ephemeris(angle(nn)), hFont, txtBrush, 250 * Math.Cos(angle(nn) * Pi / 180) + xCenter, -250 * Math.Sin(angle(nn) * Pi / 180) + yCenter, format2)
    End If
Next nn

0 个答案:

没有答案