Beiträge von PrideRage

    Hallo miteinander.


    Nach langer Zeit gibts von mir auch mal wieder ein kleines AutoIt Skript.


    Die Bezier.au3 sowie ein Beispiel findet ihr auch im Anhang!



    Ich präsentiere: Die Bezier UDF


    Mit dieser UDF könnt ihr eine Bezier Kurve mit beliebig vielen Punkten erstellen.
    Und das beste: Sie ist nicht abhängig von anderen APIs und benutzt auch keine #includes
    Ihr könnt also die Bezier Kurve mit GDI+, OpenGL oder was auch immer darstellen lassen.


    Die Vorbereitung: Natürlich muss man vorher noch einiges Einrichten, aber die Vorbereitung geht schnell und einfach.
    Folgendes braucht ihr: 2 Arrays, die die jeweiligen x- und y- Koordinaten repräsentieren.


    Beispiel:


    $arrayX[7] = [50, 100, 400, 700, 200, 250, 630]
    $arrayY[7] = [50, 600, 50, 500, 500, 120, 200]


    Dabei bildet das paar $arrayX[0] und $arrayY[0] einen 2 dimensionalen Punkt bei X=50 und Y=50
    $arrayX[1] und $arrayY[1] sind auch ein paar, die den Punkt bei X=100 und Y=600 repräsentieren, usw..


    Wenn wir die Punkte haben, können wir auch schon eine Bezier Kurve generieren.
    Aber vorher brauchen wir noch die sogenannte "Order" (auf deutsch etwa der "Grad")
    Die Zahl, die ihr für $order einsetzen müsst ist die Anzahl der Punkte-1
    Bei dem obrigen Beispiel sind es 7 Punkte, daher ist $order = 6


    Hier ist der Prototyp der Funktion:


    _GenerateBezier($order, $srcPointsX, $srcPointsY, $fidelty)


    $order, $srcPointsX und $srcPointsY haben wir ja schon, aber was ist $fidelty??
    Ganz einfach: $fidelty ist eine beliebige Zahl die Angibt, wie präzise die Bezier Kurve erstellt wird.
    Wenn wir für $fidelty 500 benutzen, so können wir 500 Punkte zeichnen, und erhalten eine Bezier Kurve.
    Nehmen wir aber 2000, erhalten wir eine schönere Bezier Kurve


    Und nun kommt der spaßige Teil: Bringen wir die Bezier Kurve doch mal auf den Bildschirm


    Dafür brauchen wir einen For-Loop und eine API mit der wir Zeichnen
    So gehts:


    For $i = 0 To $fidelty - 1 Step 1
    Zeichne(X Wert = $bezierKurve[$i][0], Y Wert = $bezierKurve[$i][1]
    Next


    Wenn wir also als fidelty 500 nehmen, schreiben wir For $i = 0 To 499 Step 1
    nehmen wir für fidelty 2000, schreiben wir For $i = 0 To 1999 Step 1



    Wem das jetzt immernoch ein wenig spanisch vorkommt, für den hab ich noch ein Beispiel programmiert,
    welches eine Bezier Kurve mittels GDI+ darstellt.



    Ich hoffe der eine oder andere kanns gebrauchen.


    Freue mich über eure Meinungen :)


    Mfg. PrideRage

    Dateien

    • Bezier.au3

      (1,95 kB, 134 Mal heruntergeladen, zuletzt: )
    • BezierBeispiel.au3

      (1,36 kB, 117 Mal heruntergeladen, zuletzt: )

    Mit den neuen Registry Einträgen funktioniert es nun, danke! :)


    Ich finds genial, dass es doch eine recht simple Lösung ist. :)


    Es ist nicht zufällig möglich, alle Funktionen aus einer .NET DLL mittels PowerShell aufzulisten, oder?

    Hey.


    Also an sich find ich das eine super Idee, damals hat es mich echt genervt, dass man keine .Net DLL's nutzen kann.
    Allerdings bekomme ich einen Fehler.
    Ich habe die DLL gedownloaded und sie ist nun im selben Verzeichnis wie das Skript (in meinem Fall auf dem Desktop) ich habe auch nix am AutoIt code geändert.


    Hier ist das Error-log


    Ich benutze Win7 64Bit und hab AutoIt 3.3.8.1 drauf.
    Das .NET Framework habe ich natürlich auch drauf (Version 4.5)


    An sich ist es jedoch eine super Idee :)

    Zitat

    Wieso nimmst du nicht C, C++ oder BASIC ?

    Ich finde C bzw. C++ sind nicht gerade einfache Programmiersprachen, ich kann zwar etwas C++, aber bei OpenGL + C hab ich dann entgültig aufgegeben C für OpenGL zu benutzen.
    Und BASIC ist einfach irgendwie anders als die anderen Programmiersprachen, deswegen versuche ich auch gar nicht mich mit BASIC zurecht zufinden.


    Zitat

    wenn man richtig Skill hat, kann man aus Java eine menge raushohlen, aber schneller als C++ ist es nicht.

    Momentan reicht mir die Geschwindigkeit von Java aus, denn ich habe ja nicht vor ein Crysis in Java zu programmieren ^^
    Für das, was ich vor habe ist Java definitiv besser für mich geeignet als C++.

    Hallo liebe Community!
    Ich bins mal wieder und hab auch schonwieder ein Problem.
    In letzter Zeit beschäftige ich mich mit Java und OpenGL in Java (mit LWJGL).
    Bisher funktioniert auch alles super, aber seit ca. einer Stunde sitze ich an einem Motion Blur Skript und komme nicht weiter.
    Ich möchte mehrere Quads semi-transparent zeichnen, aber OpenGL will das anscheinend nicht.
    Leider finde ich mittels Google keine Lösung :(
    Hier ist der Codeschnipsel der Betroffen ist:



    Ich habe bereits viel versucht, das könnt ihr mir glauben, aber ich schaffe es nicht, dass
    glColor4f(0.8f,0.1f,1.0f, opacity);
    transparenz erstellt,
    nicht einmal wenn ich in der Schleife das opacity durch 0.2f ersetze.


    Falls ihr euch wundert, wie ich versuche Motion Blur damit zu erstellen, ich versuche folgendes:
    Ich will bei Bewegung einfach Quads zeichnen, die genau so aussehen wie das Original,
    die neuen Quads sind aber verschoben (nach links wenn es sich nach rechts bewegt),
    und zudem transparent.
    Die Variable "steps" gibt an, wie viele Quads gezeichnet werden für die unschärfe,
    desto mehr steps, desto detailierter der/die/das Motion Blur.



    Ich hoffe, dass jemand, der sich mit OpenGL auskennt, mir dabei helfen kann.
    Und ich hoffe auch, dass ich keinen Anfängerfehler begangen habe.


    MfG. PrideRage


    Edit:
    Folgende 2 Zeilen haben mir den Weg zur Transparenz ermöglicht
    glEnable (GL_BLEND);
    glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    Nun funktioniert alles so wie es soll.

    Hallo.
    Dein RPG sieht soweit..naja "Ok" aus, viel dazu sagen kann ich nicht, da es ja offensichtlich noch entwickelt wird.
    Ich habe ein Problem mit dem Game:
    Wenn ich von Anfang an immer nach unten gehe, und dann nach rechts,
    spawne ich von einem Fluss umrandet, wenn ich drüber gehe, bekomme ich 'nen Error:


    Zu dem Bug mit dem grauen Kästchen hinter dem Spieler:
    Versuch mal das Dateiformat .png zu benutzen und den Hintergrund Transparent zu machen.
    Denn ich weiß nicht ob .bmp Transparenz zulässt (bzw. erkennt).


    MfG. PrideRage

    Wieso nennst du es Bat "Verkleinern"?
    Ich hab dein Skript mal unter die Lupe genommen, und dein Skript macht alles, aber es Verkleintert die Batch File nicht.
    Es macht eine Batch File sogar länger, und zudem unleserlicher.
    Und um ehrlich zu sein dachte ich du hättest einen Kompressionsalgorithmus geschrieben,
    anstatt ein Script welches Zeilenumbrüche löscht.

    Ich selbst benutze WindowsXP bin aber höchst unzufrieden :rofl:
    Ich hätte am liebsten Win7 x64 aber hab noch net die Kohle für nen besseren PC.
    Ich bin wahrscheinlich einer der wenigen Windows'ler die Ubuntu auch toll finden xD
    Aber es hat ja keine guten Spiele, ist zum arbeiten trotzdem toll..
    MfG. PrideRage

    Für mich sind meine must-haves:


    WinRAR
    Firefox
    FileZilla
    Flash Player
    Photoshop CS5
    Sony Vegas Pro 9
    Blender
    Cheat Engine
    Code::Blocks
    Microsoft Visual C# 2010 Express
    FL Studio 9 Producer XXL
    Deckadance
    Unity3D
    CCleaner
    Avast 6
    VDownloader
    MSN
    Skype
    Windows Media Player
    VLC Media Player
    Steam
    Endorphin
    Alcohol 120%
    Audacity
    TuneUp 2011
    RocketDock
    Notepad++
    Microsoft Office 2007
    CamStudio
    Python
    AutoIt
    Unlocker


    Ohne diese Programme könnte ich am Computer nicht leben xD
    MfG. PrideRage

    Hallo.
    Wenn ich mit EMU Compiliere, dann bekomme ich keine .bin file :(
    Wäre schön wenn einer mir sagen könntes, was ich dagegen machen kann...
    MfG. PrideRage


    Edit: Hab die .bin files jetzt, wäre schön wenn du einen funktionierenden Source-Code providen würdest :rolleyes:


    Edit2: Du meintest, dass das mit dem "RUN" nur kurz dauert. Nach 10 Minuten sagt mir das programm dann "The program is haltet", und somit läuft das Proggi nicht, Zeitverschwendung für mich imo.!!


    Edit3: Läuft!

    Hallo.
    Ich melde mich mal wieder (seit langem) mit einem Problem.
    Ich hab das neueste MozRepl und FireFox installiert, jedoch bekomme ich beim _FFconnect()
    folgendes in der Konsole:



    Damit kann ich leider überhaupt nix anfangen.
    Ich hab bereits FF reinstalliert, neugestartet, MozRepl neu installiert, es hilft aber alles nix.
    Ich hoffe einer von euch weiß, was da los ist...


    MfG. PrideRage

    Cooles Skript, funzt prima.
    Leider hasse ich Zahlenreihen, und "Schwer" kannst du auch zu "Zu schwer" umbenennen :P
    Die Lösung sollte evtl. auch angezeigt werden.

    Hallo liebe AutoIt'ler.
    In den letzten Tagen bin ich auf die Dictionary Funktion in Python gestoßen.
    Diese Funktion ist einfach Klasse, und ich habe mir mal die Zeit genommen,
    diese Funktion so gut es geht in AutoIt zu erstellen.


    Was ist ein Dictionary?
    Ein Dictionary in Python ist ganz einfach zu betrachten wie ein Array,
    der keine Elemente hat, wie z.B. $array[3] sondern Schlüssel und Werte.
    Wenn man also den Schlüssel "Land" und den Wert "Deutschland" definiert,
    dann kann man in Python sein Dictionary so aufrufen:
    Dictionary["Land"], wenn man das in der Konsole ausgibt, käme Deutschland raus.
    Die Syntax wäre: Dictionary = {"Land":"Deutschland"}


    Wozu brauche ich Dictionaries?
    Dadurch, dass man Wertepaare hat, kann man ganz leicht seine Daten speichern und/oder anordnen.
    Will man z.B. einen Array mit Namen und Passwörtern machen, dann bräuchte man einen 2D Array,
    in dem man dann alles einfügt und wiederfinden muss.

    Sind die AutoIt Dictionaries schwerer als Python's Dictionaries?
    Meines erachtens nach sind sie nicht schwerer.
    Ich habe "spezielle" Funktionen hinzugefügt,
    die das Managen eines Dictionaries angenehm und einfach machen.
    Die Funktionen haben selbsterklärende Namen, aber ohne
    Funktionsheader wäre es nicht übersichtlicher ;)


    Gibt es Bugs?
    Ich hoffe, ich habe alle beseitigt, aber da kann ich mir nicht 100%ig sicher sein.
    Über rückmeldung und/oder Verbesserungsvorschläge würde ich mich freuen.


    Ich danke BugFix für 2 seiner tollen 2D Array funktionen;
    und SEuBo für das "DescribeIt" Tool.


    Source Code + Beispiel findet ihr im Anhang.
    Wer noch Fragen zu den Dictionaries hat, kann sie gerne stellen.


    MfG. PrideRage

    Dateien

    • Dictionary.au3

      (18,41 kB, 149 Mal heruntergeladen, zuletzt: )
    • Beispiel.au3

      (469 Byte, 150 Mal heruntergeladen, zuletzt: )

    Hallo Blume,
    für so wenig Zeilen Code ist das Resultat überweltigend.
    Wäre cool wenn man daraus eine Animation machen könnte, aber die Berechnung für ein Bild dauert 10 Sekunden.
    Also gute Arbeit bei der änderung der Formel ;)
    MfG. PrideRage