掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
(VB.NET)円を図形描くときに軌跡を表示するには? (ID:122847)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
PaintEventArgs.Graphics プロパティのヘルプにサンプル載ってるし 必要無いんだけど、お遊びで作ったので暇な閲覧者さんは STACK_STEP を変更して遊んで下さい。 〜サブタイトル 軌跡って言ったらこっちでしょ〜 [VB.NET] Private Const STACK_STEP As Byte = 6 ' 12 36 Private Const COLOR_STEP As Integer = 255 / STACK_STEP Private Const CIRCLE_DIAMETER As Integer = 100 Private mRedBrush As System.Drawing.SolidBrush Private mBlackBrush As System.Drawing.SolidBrush Private mX(STACK_STEP - 1), mY(STACK_STEP - 1) As Integer Private mCount As Byte Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.mRedBrush = New System.Drawing.SolidBrush(System.Drawing.Color.Red) Me.mBlackBrush = New System.Drawing.SolidBrush(System.Drawing.Color.Black) Me.mCount = 0 End Sub Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint Dim i As Integer With e.Graphics For i = 0 To STACK_STEP - 2 Me.mBlackBrush.Color = Color.FromArgb(255 - i * COLOR_STEP, 255 - i * COLOR_STEP, 255 - i * COLOR_STEP) .FillEllipse(Me.mBlackBrush, Me.mX(i), Me.mY(i), CIRCLE_DIAMETER, CIRCLE_DIAMETER) Next .FillEllipse(Me.mRedBrush, Me.mX(STACK_STEP - 1), Me.mY(STACK_STEP - 1), CIRCLE_DIAMETER, CIRCLE_DIAMETER) End With End Sub Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove Me.mX(Me.mCount) = e.X Me.mY(Me.mCount) = e.Y If Me.mCount = STACK_STEP - 1 Then Me.mCount = 0 'Call Me.Refresh() Call Me.Invalidate() Else Me.mCount += 1 End If End Sub >MouseDownとMouseMoveを使用し、 とかからよくよく考えると『MouseDown の点を中心として MouseMove の位置に円周を 表示しつづけ、MouseUp 辺りで終了』したいのか?って閃いたけど…関係ないって 言ってしまえば全く関係ないサンプルだwでも↑のサンプルの内容が理解できれば…。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.