タイトル | : 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
|