| | タイトル | : Re^3: 点を一つ一つ出していくためには |  | 記事No | : 10423 |  | 投稿日 | : 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
 
 |