Seite 2 von 2

Verfasst: 27.03.2005 15:43
von NicTheQuick
Ich schätze mal, Primzahlen eignen sich ganz besonders für den Blendmode.
Ich habe jetzt auch mal ein paar ausprobiert. Allerdings scheint meine Theorie nicht ganz die beste zu sein.
Aber 29 und 100005 sind doch ganz schön.

Verfasst: 27.03.2005 15:54
von Kaeru Gaman
nicht primzahlen selbst, sondern solche, die primzahlen für die Schrittweite ergeben

Schrittweite = Mode*2+1

3 => 7 = primzahl
5 => 11 = primzahl
6 => 13 = primzahl
8 => 17 = primzahl
...etc, etc

[edit]

@Nic

aber der Algo is doch interessant, oder?
...ebenso einfach wie wirkungsvoll...

Verfasst: 27.03.2005 15:58
von DarkDragon
Ich glaube das wollte er:

Code: Alles auswählen

Dim ScreenBuffer.l(799, 599)

If InitSprite() And InitKeyboard()
If OpenScreen(800, 600, 32, "Test")


Repeat
  ExamineKeyboard()
  ClearScreen(0, 0, 0)
  StartDrawing(ScreenOutput())
  For x=0 To 799
    For y=0 To 599
      
      If Random(5) = 5 And ScreenBuffer(x, y) <> RGB(255, 0, 0)
        
        ScreenBuffer(x, y) = RGB(255, 0, 0)
        
      EndIf
      
      Plot(x, y, ScreenBuffer(x, y))
      
    Next
  Next
  StopDrawing()
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)

EndIf
EndIf
End

Verfasst: 27.03.2005 16:11
von zigapeda
das denk ich auch darkdragon nur am schluss sollte es ein bischen schneller gehen

Verfasst: 27.03.2005 16:21
von Kaeru Gaman
DarkDragon hat geschrieben:Ich glaube das wollte er:
Auch das wäre eine Lösung
klingt weniger eingebildet


Das ist eine ziemlich Gute Lösung!

allerdings fehlt eine absolute endbedingung...

....setz das mal für das Sprite-to-Sprite-blending um ;)

zigapeda hat geschrieben:das denk ich auch darkdragon nur am schluss sollte es ein bischen schneller gehen
das liegt an dem Random...

deshalb von mir der algorythmus...

evtl. könnte man DDs Lösung durch ein Volleinsetzen nach einer gewissen Zeit ergänzen...

Verfasst: 27.03.2005 16:56
von DarkDragon
Hmm... ich hab eure Antworten gelesen, aber ich glaube nicht dass er den Screen mit blending füllen wollte :? Ich hab meine antwort auch nicht eingebildet gemeint ich dachte nur dass man ihn nicht richtig verstanden hatte. Naja, was solls, ist ja auch egal ;) .

Verfasst: 27.03.2005 17:01
von Kaeru Gaman
ok, DD... hab dich falsch aufgefasst
also, bitte meine bemerkung nicht übelnehmen...

ich hab halt nur ne Sprite-Blending-Routine erstellt, weil das, was GS wollte,
damit grundsätzlich machbar ist, aber die anwendungen vielfältiger.

mir gings in erster line um den algo, in meinem zweiten beispiel hab ich ja
auch ein reines Plot eingebaut, kein SpriteBlending.

ich such grad wie ein blöder ein altes C-Handbuch, da war ne Random-Routine drin...
die funktioniert nämlich irgendwie mit plus-krumme-zahl und bereichs-beschränkung...
wenn man die richtig umsetzt, schlägt man zwei fliegen mit einer klappe:
zufälliges Füllen und jeder Punkt nur einmal...

[edit]
hmmm.... hab grad mal spasseshalber folgenden test gefahren:

Code: Alles auswählen

Dim a(480000)

For n=0 To 479999
    x = Random(479999)
    If a(x) = 0
        a(x) = 1
    Else
        Debug x
    EndIf
Next
es scheint, als ob Random doch ne menge zahlen doppelt erzeugt....

man müsste halt mal für den Algo ne sinnvolle Step-grösse ermitteln...