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
KompilierenMarqueSéparation
cela était déjà anschaulicher, mais chez weitem genauso unnütz comment les numéros (oui c'est ca pris était cela ganze Experiment unnütz ).
Jedenfalls fuhr je fort, dans dem Je l' Zahlenbereich sur 0-100 ausweiterte.
et soudain kamen mir qui Figuren, qui AND et OU hervorbrachten droite bekannt avant...
Pour quelque chose Herumprobieren wählte Je l' Zahlenbereich 0-127 et enfin hatte es chez mir Klick gemacht.
Es handelte sich um un [...] !
cet Figur wird normalement seulement par Rekursion erreicht (seulement l'année dernière suis je am Zeichnen cette Figur mittels Rekursion kläglich gescheitert).
Umso plus était je überrascht, dass sich cet Figur sur binäre Verknüpfungs-Funktionen erreichen laisser.
Pour einiger travail bekam je folgenden bildschönen Code heraus:
KompilierenMarqueSéparation
proc DrawSierpinskiAND
parameters ord% , la couleur% , x% , y%
declare i%
ord% = 2 ^ ord%
whileloop 0 , ord%-1
i% = &loop
whileloop 0 , i%
SetPixel x%+i% , y%+And(i%,&loop) , la couleur%
Endwhile
Endwhile
endproc
proc DrawSierpinskiOR
parameters ord% , la couleur% , x% , y%
declare i%
ord% = 2 ^ ord%
whileloop 0 , ord%-1
i% = &loop
whileloop 0 , ord%-1-i%
SetPixel x%+i% , y%+Or(i%,&loop) , la couleur%
Endwhile
Endwhile
endproc
declare time&
cls
Couleur du texte RGB(255,255,255) , (-1)
UseBrush 1 , RGB(000,000,000)
Fill 10 , 10 , 0
UseBrush 1 , RGB(255,255,255)
Rectangle 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
Rectangle 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
Rectangle 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
paramètre:
ord% = Ordung des Dreiecks (je höher, umso größer wird es)
la couleur% = la couleur des Dreieckes comme RGB-Wert
x% , y% = X- et Y-Position des Dreieckes
avec diesem Code peut sich vite herausfinden, dass sich solch un Dreieck plus rapide zeichnen peut, si on es dans kleinere Teildreiecke zerlegt.
Hoffe, cela hat quelqu'un intéressé.