文字の定義
TEXTは、以下のように記述されます。
- ①の座標は、グループコード10,20,30が文字に始点のX,Y,Zを表します。
- ➁の座標は、グループコード11,21,31 文字の中心を表します。
- グループコード40で、回転角度(90)を表します。角度は右回り、左回りがありますが HEADER セクション の $ANGDIRで定義されています。
TEXT 5 73B2 330 1F 100 AcDbEntity 8 DIM 100 AcDbText 10 ➀の座標 -965665 20 -309981 30 0.0 40 90.0 1 台池 ユーザー指定文字 50 90.0 角度 7 ゴシック 72 1 11 ➁の座標 -965710 21 -309864 31 0.0 100 AcDbText 73 2 0
文字列の回転
- VB.netで記述すると文字の回転は、以下のようになります。
- 先にグラフィックオブジェクトを平行移動、回転して原点に書き込みます。
Public Sub Draw(ByRef canvas As Bitmap,
ByRef boundBox As BoundingBox,
ByVal xImageWidth As Double,
ByVal yImagaHeight As Double)
'グラフィックオブジェクトの定義
Dim g As Graphics = Graphics.FromImage(canvas)
Dim width As Integer = canvas.Width
Dim height As Integer = canvas.Height
'出力文字列
Dim message As String = "台池"
'スクリーン座標へ変換
Dim X = (mText.mPosition.mX - boundBox.mCoordMin.mX) / (boundBox.mCoordMax.mX - boundBox.mCoordMin.mX)
X = xImageWidth * X
Dim Y = (mText.mPosition.mY - boundBox.mCoordMin.mY) / (boundBox.mCoordMax.mY - boundBox.mCoordMin.mY)
Y = yImagaHeight * (1.0 - Y)
'画像を平行移動
g.TranslateTransform(X, Y)
'回転
g.RotateTransform(-90)
'フォントオブジェクトの作成
Dim fnt As New Font("MS UI Gothic", 9)
'文字列、フオント、黒色、位置、フォーマットで表示
g.DrawString(message, fnt, Brushes.Black, 0, 0)
'リソースを解放する
fnt.Dispose()
g.Dispose()
End Sub