Beiträge von o2candoo

    Hi Leute


    Wiedermal ein neues "Just4Fun-Script" :)


    Die Idee stammt aus folgendem Link:

    Orca


    Wenn der Link nicht funktioniert, findet man das Prinzip unter folgendem YT Video:

    YT-Orca



    - In diesem Skript ist das ganze mit Kreisen als Platzhalter umgesetzt.

    Das Ziel ist es jeden Kreis durch ein gezeichnetes layer zu ersetzen, um auch ein solches Orca Bild wie im Link zu erhalten.

    (Hat jemand bock diese Layer für mich zu zeichnen? Muss nicht zwingend ein Orca sein, kann auch ein Vogel oder sonstiges abbilden)


    - Damit nicht immer der ganze Bildschirm gerendert werden muss (was alles verlangsamt),

    habe ich den Bildschirm 'Gekachelt' in 9 Segmente in welche das Gui springt

    --> Nachteil: Es Flackert bei den Übergängen und bei schneller Mausbewegung.

    --> Lösungsansatz: Das Fenster permanent mit der Maus mitbewegen und die Objektpositionierung dementsprechend anpassen

    (Mache ich sobald ich Zeit und Lust dazu habe)


    - Die Objektbewegung kann je nach rechenpower variieren. Sie ist derzeit mit der Funktion in Zeile 37 als erster Näherungsansatz umgesetzt (nach gefühl).



    Teilt mir eure Gedanken mit wenn Ihr lust dazu habt und wie immer bin ich offen für Ideen und Verbesserungsvorschläge :thumbup:



    LG

    Dateien

    • MoveToMouse.au3

      (4,91 kB, 34 Mal heruntergeladen, zuletzt: )

    Ups, da war doch noch was ^^'


    Ja macht spass zuzuschauen, vorallem wenn man unterschiedliche Startparameter wählt :)


    Das mit dem ausufern ist im neu angehängten file "GDI+_Pendel_friction.au3" behoben mit der Reibungsvariablen $f

    Vielen Dank für diese Rückmeldungen!

    Das freut und motiviert mich natürlich umso mehr etwas daran rumzutüfteln :):thumbup:


    Andy Danke, dass Du mich vor grösserem "Schaden" im Bezug auf Assembler bewahrst ^^

    Auch die weiteren Ausführungen und Tipps von Dir werde ich bei Gelegenheit sehr gerne versuchen umzusetzen.

    Allem voran den Vorschlag, dies mit OpenCL kombiniert mit OpenGL zu realisieren.

    Zudem werde ich evtl. versuchen, etwas in Python zu coden (nur um Vergleiche ziehen zu können und just 4 Fun).


    UEZ Dies habe ich noch nicht getan, ist aber ein guter nächster Schritt

    (habe ich zuerst gemieden, da ich auch in C++ noch keine Erfahrung habe und ich zunächst mehr Zeit brauche, um diese Sprache zu lernen).



    LG

    Hi Community


    Das hier angehängte Skript bezieht sich auf folgenden YouTube Beitrag von CodeParade, welches das Funktionsprinzip auch gleich erklärt:

    Chaos Equations - Simple Mathematical Art


    Dieses video hat mich dazu inspiriert, eine Umsetzung in AutoIT zu versuchen.

    Das Resultat ist meiner Meinung nach mehr oder weniger zufriedenstellend.

    Jedoch möchte ich gerne bei den AutoIT Experten noch folgendes in Erfahrung bringen falls möglich:


    - Im Video sieht man so etwas ähnliches wie einen "Pfad" der einzelnen Punkte, was einen coolen Effekt hervorbringt. Dies habe ich auch versucht, indem ich alle Punkte des vorherigen Schrittes in einem Array gespeichert habe, und lediglich Verbindungslinien von "alten" zu "neuen" punkten gezeichnet habe. Jedoch sieht das ziemlich blöd aus und ist ziemlich ineffizient denke ich.

    Ist der Ansatz mit einem transparenten clearing besser? Wenn ja, wie?


    - Im Video sieht es ziemlich flüssig aus. Ich denke dass dies nur mit Assembler möglich ist, oder gibt es da noch einen anderen Weg mein Skript zu beschleunigen? Wenn Assembler die einzige Lösung ist (habe ich btw. 0 Erfahrung), kann mir dann jemand etwas unter die Arme greifen, bzw. einen guten Link empfehlen, um sich in Assembler etwas einzuarbeiten?


    - Eine andere Möglichkeit wäre alles komplett durchrechnen zu lassen und dann erst zu visualisieren, bspw. mittels einem Gif? Gibt es da bereits etwas ähnliches?



    Info zu den Makros in meinem Skript:

    c --> Säubern

    h --> Verlauf ON/OFF

    r --> Neue zufällige Summanden (im Modus "Random" ersichtlich)

    m --> Moduswechsel

    t --> ToolTip ON/OFF

    a --> Animation ON/OFF

    f --> Animation schneller

    l --> Animation langsamer

    s --> Animationsbereich kleiner

    b --> Animationsbereich grösser

    i --> Info (oben links) ON/OFF

    Mauserad --> Zoom

    Mausposition in Horizontaler Richtung --> Zeitschritt-Update (wenn Animation OFF)


    Ansonsten wünsche ich viel Spass beim Ausprobieren und Entdecken von neuen Kombinationen :)


    LG

    Hi Community


    Dieser Beitrag lehnt sich an einen bereits existierenden Beitrag von mir:

    FlyingDots

    Da es bei diesem neuen Code jedoch einige Abweichungen zum älteren Beitrag gibt, erschien mir ein neues Thema zu erstellen der richtige Weeg.


    INHALT:

    - GDI+ Spielerei, abhängig von div. Inputs wie z.B. Musik, Mausposition und Tastatureingaben (in progress!).

    - Audio Funktion on/off

    - Normal Modus / Zoom Modus

    - History Funktion (nur in Normal Modus möglich)


    HotKey's:

    - Pfeiltaste Hoch --> Anzahl Punkte erhöhen

    - Pfeiltaste Runter --> Anzahl Punkte vermindern

    - h --> History Funktion on/off

    - a --> Audio Funktion on/off

    - z --> Zoom Funktion on/off

    - c --> Clear Screen

    - t --> ToolTip on/off

    - Mausrad --> Zoom-Speed


    Geplante Features:

    - Gegenwärtige Situation der Einstellungen speichern, z.B. unter "Favoriten" oder als "Playlist", um veränderungen zu automatisieren oder Voreinstellungen laufen zu lassen

    - Weitere Formen oder Mathematische Strukturen einbinden wie z.B. Fraktale geometrien, mit der Möglichkeit Abläufe zu speichern

    - Nicht nur RightChLvl und LeftChLvl von BASS verwenden, sondern komplettes Frequenzband einbinden (HILFE, KENN MICH NICHT GUT MIT BASS UDF AUS :D)

    - Flüssige Umsetzung auch bei FullScreen inkl. FPS Anzeige (AUCH HIER BITTE ICH UM HILFE BEI DEN GDI+ PROFIS)


    TIPP:

    - Bei einer Anzahl von n > 200 sieht es meist besser aus



    Bei Fragen, Anregungen oder Ideen einfach melden :rock:


    LG

    Hi Community


    Hab mal wieder ein kleines Skript zum Zeitvertreib erstellt :)

    Es erstellt lediglich eine am Anfang wählbare anzahl Kreise, welche um ein variables Zentrum rotieren und dabei das Bild im Hintergrund grösser oder kleiner angefügt wird.


    Ein Bild sagt mehr als tausend Worte, daher siehe Bilder von Beispielen im Anhang.


    Steuerbar ist alles über die Maus:

    --> oben nach unten = Grösse der Kreise

    --> links nach rechts = Abstand der Kreise

    --> Mausrad = Richtung



    Möglicher Ausblick:

    Ein weiteres Ziel ist noch einen Ablauf zu kreieren, abhängig von einer auf dem PC gespielten Musik.

    Ich habe noch nichts im bereich vom Equalizing probiert, klingt aber spannend und vielversprechend :)

    Gemacht --> FlyingDots with BASS


    Viel Spass und Rückmeldung/Verbesserungsvorschläge erwünscht :rock:

    LG

    Vielen Dank für Deinen Input!


    Diesen Link kenne ich und finde ich super! Habe sogar schon etwas "eigenes" dazu erstellt, jedoch wirklich Anfänger mässig :)

    Das Prinzi ist (fast) dasselbe, jedoch ohne eine solch schöne GUI...

    Dateien

    • Draw_Lines.au3

      (2,37 kB, 125 Mal heruntergeladen, zuletzt: )

    Hi Community :)


    Da ich online noch kein Skript eines Doppelpendels seitens AutoIT gefunden habe, habe ich mich selbst an einer Umsetzung versucht.

    Jedoch ist in dieser Ausführung die Reibung nicht berücksichtigt... Zudem kann es sein, dass das Pendel bei div. Einstellungen eine "Eigenfrequenz" erreicht und es unendlich schnell rotiert bis es verschwindet...


    wie kann ich dem Abhilfe verschaffen?



    vielen Dank im Voraus :rock:


    UPDATE:

    Weiteres file "GDI+Pendel_friction.au3" angehängt in welchem die Reibung mit der variablen $f berücksichtigt ist --> ausufern wird so behoben

    Zitat

    NIEMALS Globale Variablen innerhalb von Funktionen deklarieren, da rastet dir Au3Check mit Warnungen nur aus, es ist auch kein sicherer Stil.

    Erstelle deine Globals ganz oben und in der Funktion weißt du den Wert dann zu.

    Ist aufgenommen und wird bei der nächsten Version angepasst sein. Danke für den Input :)

    Zitat

    - Die Funktion ist schon recht schnell "fertig". Mir würde es gefallen, dass man noch einen Winkel festlegen könnte, um den das fertige Muster dann mehrfach gedreht werden würde. Letztendlich könnte man damit wunderschöne Mandalas kreieren.

    Das war auch mein Gedanke :) habe bereits versucht was umzusetzen. Was dabei herauskam ist im Anhang zu finden.


    Zitat
    - Interaktionen kommen immer gut, indem bspw. der User mit der Maus ins Bild klickert und dort dann eine Reaktion auslöst...

    Finde ich gut, evtl. könnte ich das in einen "Interaktionsmodus" einlagern, welcher dann beliebig ein-, bzw. ausgeschaltet werden kann.

    Zitat

    Ok, ich hab mich mal kurz in dein Skript eingearbeitet und habs implementiert.

    Ich hätte das ganze anders strukturiert aber ich wollte das jetzt nicht komplett über den Haufen werfen, da es einfach zu viel Zeit kosten würde also hab ich das so mal beibehalten.

    Ich bin begeistert, vielen dank für diese super Hilfe ^^

    Für mich jungen "Hobby" Programmierer ist das bereits sehr viel Wert!


    Ich werde dann Updates mit weiteren Features Posten und bin auch dann gespannt und offen für Verbesserungsvorschläge 8)

    Ich habe versucht einen zweiten Buffer, sowie ein zweites Bitmap zu erstellen.

    Die funktion _Draw() habe ich nach besstem Wissen und gewissen angepasst wie folgt:


    Ich denke ich habe es nicht richtig verstanden, denn es flackert immernoch :/

    Hi Community


    Das hier präsentierte Skript ist lediglich eine Spielerei von mir und NOCH NICHT FERTIG :) !

    Weitere Features (und zum Schluss natürlich Zeilen Optimierung) kommen noch dazu.


    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    UPDATE 31.10.18 (Version 1.2):

    - Die Gui ist nun im OnEvent Modus

    - Die Variablendeklaration wurde überarbeitet, evtl. noch verbesserungswürdig (Vorschläge erwünscht)

    - Das "sizinig" ist etwas grösser, aber noch nicht fertig optimiert

    - Der Parameter "bias" sorgt für eine definierte "Verschiebung" der Kurve, was coole "Surfaces" erzeugen kann

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    UPDATE 05.11.18 (Version 1.3):

    - Button "RAND" hinzugefügt:

    Initialisiert neue "random" Settings"

    - Checkbox "SBS" (StepByStep) hinzugefügt:

    Wenn nicht angewählt, berechnet es 50 Schritte ($calc_forward) im Voraus und bildet diese danach ab.

    Jedoch fehlt immer der Zwischenschritt, welcher nicht gezeichnet wird (wirkt Skizzenhaft, wird jedoch noch behoben)

    - Slider "Fading" hinzugefügt (momentan mithilfe von "graphicsclear" um eine Vorstellung zu bekommen, wird evtl. noch optimiert)

    - Slider "Speed" hinzugefügt

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    AUSBLICK:

    - Farbenhandling

    - Beschriftungen im Skript (Nachvollziehbar) nachtragen

    - Speichern von Bildern, Settings

    - Laden von Settings

    - Zeilenoptimierung

    - Variablennamen Optimierung

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


    Falls das Skript bei jemandem Probleme macht, getestet habe ich es bisher nur auf meinem Laptop:

    - HP-Omen

    - Intel(R) Core(TM) i5-7300HQ

    CPU @ 2.50GHz (4 Kerne)

    - 8.00 GB RAM

    - 64-Bit,

    - 1920x1080



    V 1.3:



    Vielen Dank im Voraus für Eure Hilfe.:)

    Danke für den Input, werde ich gerne einfliessen lassen.


    Den Backbuffer hatte ich anfänglich verwendet, um etwas auszuprobieren. Nachträglich muss ich vergessen haben, ihn wieder rauszulöschen ^^

    "Mandala Creator" mithilfe von einfacher Vektorgeometrie:


    Dieses Skript habe ich im Eildurchgang erstellt, um etwas auszuprobieren, da wir derzeit die Vektorgeometrie im Studium behandeln.
    Natürlich ist es noch ausbaubar und ich bin offen für Ideen und Vorschläge aus dem Plenum :)
    Erstellt habe ich dieses Skript bei einer Auflösung von 1920x1080, andere Auflösungen habe ich noch nicht getestet.


    Hinweis: Bei den Inputs jeweils eine Zahl zwischen (>0) und (<360) einfügen und auf "GENERATE" klicken und schauen, was passiert ;)


    Viel Spass :)

    Dateien

    • draw.au3

      (5,24 kB, 132 Mal heruntergeladen, zuletzt: )

    Hi Ho


    Ein kleines Script, Just 4 Fun ;) Last die Fenster hüpfen! 8)




    Global $yvar, $X, $Y, $Umschaltung, $Abzug, $fPosition, $geschwindigkeit, $xvar, $richtung
    $yvar = 1
    $Umschaltung = 0
    $Abzug = 0
    $geschwindigkeit = 10
    $xvar = 1
    $fTitel = ""



    HotKeySet("{UP}","UP")
    HotKeySet("{RIGHT}","RIGHT")
    HotKeySet("{LEFT}","LEFT")
    HotKeySet("{DOWN}","DOWN")
    HotKeySet("{ESC}","Escape")



    While 1
    Fenster()
    Berechnung()
    Neue_Position()
    Sleep(1)
    WEnd



    Func Fenster()
    $fTitelneu = WinGetTitle("[ACTIVE]")
    If $fTitelneu <> $fTitel Then
    WinMove($fTitel,"",0,0)
    $fTitel = $fTitelneu
    $geschwindigkeit = 10
    $yVar = 1
    $xVar = 1
    $Umschaltung = 0
    $Abzug = 0
    EndIf
    $fPosition = WinGetPos($fTitel)
    EndFunc



    Func Berechnung()
    $fPosition = WinGetPos($fTitel)
    If $fPosition[0] >= (@DesktopWidth - $fPosition[2]) Then
    $richtung = 0
    ElseIf $fPosition[0] <= 0 Then
    $richtung = 1
    EndIf



    If $Umschaltung = 0 Then
    $yvar = $yvar + ($yvar/$geschwindigkeit)
    $Y = $Y + $yvar


    If $Y >= (@DesktopHeight - $fPosition[3]) Then
    $xvar = $xvar - ($xvar/5)
    $Umschaltung = 1
    EndIf
    ElseIf $Umschaltung = 1 Then
    If $Abzug = 0 Then
    $yvar = $yvar - ($yvar/5)
    $Abzug = 1
    EndIf
    $yvar = $yvar - ($yvar/$geschwindigkeit)
    $Y = $Y - $yvar
    If $yvar <= 2 Then


    $Umschaltung = 0
    $Abzug = 0
    EndIf
    EndIf



    If $xvar > 1 Then
    If $richtung = 1 Then
    $X = $X + $xvar
    ElseIf $richtung = 0 Then
    $X = $X - $xvar
    EndIf
    EndIf
    EndFunc



    Func Neue_Position()
    WinMove($fTitel,"", $X, $Y)
    EndFunc



    Func UP()
    $geschwindigkeit = 10
    $Umschaltung = 1
    $Abzug = 0
    $yvar = 55
    EndFunc



    Func RIGHT()
    If $richtung = 0 Then
    $xvar = 10
    $richtung = 1
    Else
    $xvar = $xvar + 10
    $richtung = 1
    EndIf
    EndFunc



    Func LEFT()
    If $richtung = 1 Then
    $xvar = 10
    $richtung = 0
    Else
    $xvar = $xvar + 10
    $richtung = 0
    EndIf
    EndFunc



    Func DOWN()
    $geschwindigkeit = 3
    EndFunc



    Func Escape()
    WinMove($fTitel,"",0,0)
    Exit
    EndFunc

    Dateien