25. januar 2004 - 13:05Der er
5 kommentarer og 1 løsning
Bug i fraktalprogram
Jeg har som datalogi-projekt lavet et program som kan tegne mandelbrotmængden. Dog er der en bug som irriterer mig en del. Ideen med programmet er selvfølgelig at det skal kunne tegne en mandelbrotmængde, men åbner man det og trykker "tegn mandelbrotmængden" sker der ingenting! Af ukendte grunde skal man nemlig først trykke "reset", og derefter "tegn" for at den begynder at tegne.
Er der nogen som kan gennemskue hvorfor ?
Det eneste som sker når man trykker reset er følgende:
Private Sub cmdReset_Click() txtRed = 1 txtGreen = 5 txtBlue = 10 txtXmin = -1.9 txtYmin = -1.25 txtDelta = 2.5 End Sub
og alle disse værdier burde være tildelt som default.
PS: textboxene i framen "akser", samt "text1" og "text2" er ligegyldige, tænk ikke over dem.
PPS: Beaklger megt at koden ikke ordenligt gennemkodet endnu
PPPS: Jeg ved godt programmet er ekstremt langsomt, men det kunne ikke blive anderledes
Jeg ved ikke hvorfor, men jeg ved hvordan du omgår det. Public Sub cmdReset_Click()' lavet om til Public txtRed = 1 txtGreen = 10 txtBlue = 20 txtXmin = -1.9 txtYmin = -1.25 txtDelta = 2.5 End Sub
Tilføjet Private Sub cmdDraw_Click() Call cmdReset_Click ' Denne linie er ny If TxtNumber > 1000 Or TxtNumber < 75 Then
xStep = Val(txtDelta) / ScreenWidth 'er lige store yStep = Val(txtDelta) / ScreenHeight 'er lige store
'Cls 'Fjerner alt tegnet indhold på formen (i programmet)
DrawP = True 'Tildeler DrawP værdien True
For X = 0 To ScreenWidth 'Starter en tælleløkke for x med startværdi 0 til x bliver ScreenWidth (skærmbredden)
For Y = 0 To ScreenHeight ' Starter en tællelække for y INDEN I tælleløkken for x med samme betingelser som for x. Gennem kombinationen af disse to tælleløkker, bliver der regnet på hvert enkelt punkt.
p = Val(txtXmin) + X * xStep q = Val(txtYmin) + Y * yStep
xOld = 0 yOld = 0 Color = 0
While (Not (xOld ^ 2 + yOld ^ 2 > Val(txtDelta))) And Color < 255 And DrawP xNew = xOld yNew = yOld
DoEvents Next DrawP = False T2 = Timer lblTimer = Val(Abs(T1 - T2)) & " Sekunder" Else MsgBox ("Du har valgt farver, hvis sum er over 30. Dette gør kvaliteten af fraktalen ringere!") End If End If End Sub
hmm..trykkede lige "send" men min besked forsvandt bare ?
Anyway, det hele virker nu, pga Val() :D Jeg ved ikke om det er fordi jeg kun har lavet PHP før i tiden, men jeg har det med at glemme Val() hele tiden :|
Men nu virker det, så hvis du ville lægge et svar ville jeg blive glad :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.