タイトル : Re^3: 点を一つ一つ出していくためには 投稿日 : 2011/01/30(Sun) 19:20 投稿者 : 南場とも子
こんな感じ。 昔のベーシックなら、もっと簡単かもね。 Option Strict On Option Explicit On 'VisualBasic2010 'PictureBox1をフォームに入れといてね 'Timer1コンポーネントをフォームに入れといてね Public Class Form1 '少し難しいですょ↓↓ '<<難しい場合は1次元配列でも同様の処理ができます>> Dim Ten_hyouji_counnter As Integer = 2 Const Ten_hyouji_suu As Integer = 360 '線を表示する総数 Dim Ten_List(Ten_hyouji_suu - 1) As Point 'Ten_Listを宣言する Dim cyusin_ten As New Point(220, 220) '中心点座標をインスタンスする Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load With Me 'フォーム1の設定 .FormBorderStyle = Windows.Forms.FormBorderStyle.FixedToolWindow 'スタイル .Size = New Size(500, 500) 'フォーム1の大きさ .Location = New Point(200, 100) 'フォーム1の表示位置 .Text = "配列使用例" End With With PictureBox1 'ピクチャーボックスの設定 .Size = New Size(Width, Height) 'フォーム1と同じ大きさにする .BackColor = Color.Black .Location = New Point(0, 0) '念のため一応必要です End With With Timer1 'タイマーの設定 .Interval = 10 .Start() End With 'TenListに表示点の情報を入れる>>座標(x、y) Dim x, y, m, k As Integer Dim r As Double 'ラジアン m = 220 '中心点からの長さ k = 90 '角度 For i = 0 To Ten_hyouji_suu - 1 '表示したい点の数だけ配列に入れる r = k * Math.PI / 180 'ラジアンは小数点を使用します x = m + CInt(m * Math.Cos(r)) '表示点の横座標を計算します y = m + CInt(m * Math.Sin(r)) '表示点の縦座標を計算します Ten_List(i) = New Point(x, y) '配列に入れていく k += 1 '角度を1度ずつ増やす Next End Sub Sub open_graphics() 'グラッフィクスを必用なぶんだけ表示する Dim map As Bitmap = New Bitmap(Width, Height) Dim g As Graphics = Graphics.FromImage(map) g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias For i = 0 To Ten_hyouji_counnter g.DrawLine(Pens.YellowGreen, cyusin_ten, Ten_List(i)) '配列Ten_Listから情報を得る Next PictureBox1.BackgroundImage = map g.Dispose() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick open_graphics() Ten_hyouji_counnter += 1 If Ten_hyouji_counnter > Ten_hyouji_suu - 1 Then Timer1.Stop() MsgBox("終了です") Close() End If End Sub End Class |