declare s1% , s2% , res%
whileloop 0 , 10
s1% = &loop
whileloop 0 , 10
s2% = &loop
res% = AND(s1%,s2%)
Oder eben
res% = OR(s1%,s2%)
Oder auch
res% = ADD(s1%,s2%)
EndWhile
KompilierenMarcaSeparación
Das war ya anschaulicher, pero en weitem genauso unnütz como Pagar (Exactamente genommen war todos Experiment unnütz ).
Jedenfalls fuhr Yo fort, en el Yo, el Zahlenbereich en 0-100 ausweiterte.
Und plötzlich kamen me el Figuren, el AND y O hervorbrachten bastante bekannt antes...
Nach algo Herumprobieren wählte Yo, el Zahlenbereich 0-127 y endlich hatte lo en me Clic gemacht.
Lo handelte son una [...] !
Diese Figur se normalerweise sólo por Rekursion erreicht (sólo letztes Jahr bin Yo al Dibujar dieser Figur mittels Rekursion kläglich gescheitert).
Umso mehr war Yo überrascht, dass se esta Figur encima binäre Verknüpfungs-Características erreichen dejar.
Nach einiger Arbeit bekam Yo folgenden bildschönen Code heraus:
KompilierenMarcaSeparación
proc DrawSierpinskiAND
parámetros ord% , farbe% , x% , y%
declarar i%
ord% = 2 ^ ord%
whileloop 0 , ord%-1
i% = &bucle
whileloop 0 , i%
SetPixel x%+i% , y%+And(i%,&bucle) , Farbe%
EndWhile
EndWhile
ENDPROC
proc DrawSierpinskiOR
parámetros ord% , farbe% , x% , y%
declarar i%
ord% = 2 ^ ord%
whileloop 0 , ord%-1
i% = &bucle
whileloop 0 , ord%-1-i%
SetPixel x%+i% , y%+Or(i%,&bucle) , Farbe%
EndWhile
EndWhile
ENDPROC
declarar time&
cls
Color del texto RGB(255,255,255) , (-1)
UseBrush 1 , RGB(000,000,000)
Fill 10 , 10 , 0
UseBrush 1 , RGB(255,255,255)
Rectángulo 99 , 99 - 101+256 , 101+256
time& = &GetTickCount
DrawSierpinskiAND 8 , RGB(255,000,000) , 100+000 , 100+000
DrawText 10 , 10 , str$(int((&GetTickCount-time&)1000))
waitinput
Rectángulo 99 , 99 - 101+256 , 101+256
time& = &GetTickCount
DrawSierpinskiAND 7 , RGB(255,000,000) , 100+000 , 100+000
DrawSierpinskiAND 7 , RGB(255,000,000) , 100+128 , 100+000
DrawSierpinskiAND 7 , RGB(255,000,000) , 100+128 , 100+128
DrawText 10 , 30 , str$(int((&GetTickCount-time&)1000))
waitinput
Rectángulo 99 , 99 - 101+256 , 101+256
time& = &GetTickCount
DrawSierpinskiAND 6 , RGB(255,000,000) , 100+000 , 100+000
DrawSierpinskiAND 6 , RGB(255,000,000) , 100+064 , 100+000
DrawSierpinskiAND 6 , RGB(255,000,000) , 100+064 , 100+064
DrawSierpinskiAND 6 , RGB(255,000,000) , 100+128 , 100+000
DrawSierpinskiAND 6 , RGB(255,000,000) , 100+192 , 100+000
DrawSierpinskiAND 6 , RGB(255,000,000) , 100+192 , 100+064
DrawSierpinskiAND 6 , RGB(255,000,000) , 100+128 , 100+128
DrawSierpinskiAND 6 , RGB(255,000,000) , 100+192 , 100+128
DrawSierpinskiAND 6 , RGB(255,000,000) , 100+192 , 100+192
DrawText 10 , 50 , str$(int((&GetTickCount-time&)1000))
waitinput
end
Parámetro:
ord% = Ordung des Dreiecks (je höher, umso größer se lo)
farbe% = Farbe des Dreieckes como RGB-Valor
x% , y% = X- y Y-Position des Dreieckes
Mit diesem Code lässt se rápidamente herausfinden, dass se solch una Dreieck más rápido dibujar lässt, si uno lo en kleinere Teildreiecke zerlegt.
Hoffe, el ha jemanden interessiert.