タイトル | : Re^6: 渦巻き回りの座標移動アルゴリズム |
記事No | : 14955 |
投稿日 | : 2010/10/01(Fri) 19:27 |
投稿者 | : 魔界の仮面弁士 |
No.14950の私のヒントは、琴さんのNo.14948 > あくまで1点ずつ移動したいのであれば、 によるものです。
一方、同投稿にあった > 1,1,2,2,3,3,4,4,…と単純なルールで移動しています。 の方を使うのであれば、たとえばこんな感じ。
Option Explicit
Private Sub Form_Load() With Picture1 .AutoRedraw = True .ScaleTop = -6 .ScaleLeft = -6 .ScaleWidth = 12 .ScaleHeight = 12 End With End Sub
Private Sub Command1_Click() Dim c As Integer, offset As Integer
Picture1.Cls Picture1.PSet (0, 0)
c = 0 Do c = Abs(c) + 1 offset = IIf(c Mod 2 = 1, c, -c)
Picture1.Line -(Picture1.CurrentX + offset, Picture1.CurrentY) If Abs(Picture1.CurrentX) > 5 Then Exit Do
Picture1.Line -(Picture1.CurrentX, Picture1.CurrentY + offset) If Abs(Picture1.CurrentY) > 5 Then Exit Do Loop End Sub
|