| 分類:[.NET 全般]
http://bbs.wankuma.com/index.cgi?mode=al2&namber=90669&KLOG=156
4ヶ月前にここで質問させていただいたのですが、 仕事が忙しくすぐに試すことができませんでした。 先ほど試してみたのですが、 ラインを描画することには成功したものの、 補間されたデータを取得しても、 カクカクしたおかしなデータしか取得できません。
コードは以下の通りです。
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles PictureBox1.Paint
Dim g = e.Graphics
Dim point1 As New Point(30, 20) Dim point2 As New Point(60, 150) Dim point3 As New Point(120, 30) Dim point4 As New Point(200, 140) Dim point5 As New Point(220, 100) Dim point6 As New Point(190, 60) Dim curvePoints As Point() = {point1, point2, point3, point4, point5, point6}
'幅3の赤色のPenオブジェクトを作成 Dim redPen As New Pen(Color.Red, 3)
'GraphicsPathオブジェクトの作成 Dim myPath As New GraphicsPath
'新しい図形を開始する myPath.StartFigure()
'直線を2本追加する myPath.AddCurve(curvePoints, 1)
'パス図形を描画する g.DrawPath(redPen, myPath)
Using writer As New IO.StreamWriter("D:\test.csv", False, System.Text.Encoding.Default)
For i As Integer = 0 To myPath.PathPoints.Length - 1
writer.WriteLine(myPath.PathPoints(i).X & "," & myPath.PathPoints(i).Y)
Next i
End Using
End Sub
出力されたCSVファイルは以下のようになっています。
30,20 40,63.33333 30,146.6667 60,150 89.99999,153.3333 73.33333,33.33333 120,30 166.6667,26.66666 166.6667,116.6667 200,140 233.3333,163.3333 223.3333,126.6667 220,100 216.6667,73.33334 200,73.33333 190,60
Excelでグラフ化してもらうと分かりますが、 全く補間されていないどころか、 PictureBoxに描画されたラインとは全く異なる位置にポイントが追加されています。
これは一体どういうことなのでしょうか?
|