我使用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