Juu. Tämmösenpä tässä tekaisin. Käyttää siniä ja kosinia spiraalin luomiseen. HUOM! Jos ympyrä luodaan For-loopilla (0 to 359) jossa lasketaan jokaiselle kulmalle x- ja y-arvot sinillä ja kosinilla kertoen ne halutulla säteellä, tässä luupataan vaikka kuinka pitempään ja säde kasvaa hiljalleen!
Äkkiäpä joku tästä varmaan vetäisee pyörivän version.
EDIT: sini ja kosini taulukoitu.
EDIT2: ... ku eipäs ookkaa.
Const pi As Double = 3.14159265358979
Private Sub Form_Load()
Me.ScaleMode = vbPixels
Me.AutoRedraw = True
Me.Width = 512 * Screen.TwipsPerPixelX
Me.Height = 512 * Screen.TwipsPerPixelY
Me.Caption = "Spiraali by KoTW"
Me.Show
DoEvents
PiirraSpiraali
End Sub
Private Sub PiirraSpiraali()
' Itse spiraalin piirto
Dim sade As Double
Dim x As Single, y As Single
Dim prevx As Single, prevy As Single
Dim sine(359) As Single, cosine(359) As Single
Dim i As Integer
prevx = 256: prevy = 256
' Eli previous x ja previous y
For i = 0 To 359
sine(i) = Sin(degtorad(i))
cosine(i) = Cos(degtorad(i))
Next i
' taulukoidaan sinit ja kosinit, kun TGunner niin vaati
For ang = 0 To degtorad(360 * 5) Step degtorad(1)
x = (cosine(degtorad(ang)) * sade) + 256
y = (sine(degtorad(ang)) * sade) + 256
Line (prevx, prevy)-(x, y)
prevx = x
prevy = y
sade = sade + 0.1
a = Timer + 1
Next ang
End Sub
Private Function degtorad(deg As Double) As Double
degtorad = deg * pi / 180
End FunctionNyt ne trigonometriset funktiot omiin taulukkoihinsa!
Kelpaako nyt? Mitä vielä haluaisitte?
(e ole enää)
Aihe on jo aika vanha, joten et voi enää vastata siihen.