Heute so gecodet...

  • Tale-X schrieb:

    Ja, XML, die Polygone/Linienzüge sind Strings.
    Ah, dann könnte man das vermutlich relativ einfach mit XSLT transformieren und gleich in absolute Koordinaten umrechnen.
    Hast Du mal ein einfaches Beispiel?
    ___________________________________________________________
    Meine Kreationen: Deviant Art | Toonsup | Flickr | Youtube
    | Twitter
    Avatar: Copyright 2017 by Saiki
  • Hier der Schriftzug. Bei SVG spielt bei Groß-/Kleinschreibung eine Rolle - Großbuchstaben im Path stehen für absolute, Kleinbuchstaben für relative Koordinaten. Viel Spaß beim Transformieren ;)
    Dateien
    • Danke2b.zip

      (3,23 kB, 5 mal heruntergeladen, zuletzt: )
    Wissen ist das einzige Gut, das sich beim Teilen vermehrt. Also seid vorsichtig damit!
  • Zwar nicht heute, sondern vor vielen Jahren gecodet, aber dank der hier erwähnten Bezier-Kurven wurde ich wieder dran erinnert: Ich hab mal ein Malprogramm in Basic7 geschrieben, und irgendwann hab ich versucht, sowas wie Bezierkurven einzubauen.

    Das Programm ist ganz fürchterlich und sollte von niemandem angesehen werden, herunterladen auf eigene Gefahr. :P

    Nach dem Starten der Datei "Hirespaint V3" werden die anderen Dateien nachgeladen. Man kann es mit einem Joystick in Port 2 steuern, besser ist aber eine 1351-Maus in Port 1. Wenn man einen Joystick benutzt, ersetzt die Esc-Taste die zweite Maustaste.

    Diverse numerische Zusatzeingaben werden über die X-Position des Pointers gemacht, unter anderem auch die Farbwahl (fragt nicht, man muss halt die Basic7-Farbnummern kennen :drunk: ).

    Fast alle Zeichenfunktionen basieren auf den entsprechenden Basic7-Anweisungen (Box, Circle, Draw, etc.) mit dem Unterschied, dass das Programm eine Assembler-Unterroutine als ständiges "Undo" benutzt, so dass man eine Art Gummibandfunktion erhält - wenn auch extrem langsam. Zusätzlich zum sichtbaren Bild hält das Programm vier weitere Bildpuffer im Speicher, davon wird Nummer vier für das Undo gebraucht.

    Am Anfang sollte man einmal "Clear" anwählen, damit der Grafikbildschirm gelöscht wird.

    Bei der Funktion "Bezierkurve" setzt man dann mit dem ersten Klick den Startpunkt, mit dem zweiten Klick den Endpunkt und mit allen folgenden Klicks verändert man abwechselnd die Positionen der beiden Kontrollpunkte.
    Im Gegensatz zu einer echten Bezierkurve muss man die Kontrollpunkte allerdings ca. 1,5-mal so weit entfernt setzen (ich könnte es geometrisch erklären... ...aber ich lasse es lieber :D ).
    Hat die Kurve die gewünschte Form, muss man mit der rechten Maustaste (oder eben ESC) abbrechen.
    Ich hab mir den Code jetzt nicht mehr näher angesehen, aber wenn ich mich recht erinnere, wird die Kurve einfach nur durch 2*16 Liniensegmente angenähert, wobei die Mitte zwischen den beiden Kontrollpunkten einen zusätzlichen Kurvenpunkt definiert und die beiden Hälften der Kurve jeweils als "in den Raum gedrehter Viertelkreis" beschrieben werden können.

    Eine echte Bezierkurve wäre auch interessant, aber dafür sollte man vielleicht nicht unbedingt Basic benutzen...
    Dateien
    • hirespaint.zip

      (7,58 kB, 7 mal heruntergeladen, zuletzt: )
    Yes, I'm the guy responsible for the ACME cross assembler

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Mac Bacon ()

  • Den Plus/4 Modulcode für einen Directory-Browser. Der Browser wird aus dem Modul kopiert, Modul angeschaltet, alles grade gebogen und dann automatisch ausgeführt. War nicht so einfach wie es sich anhört. :) Man muss die Eigenheiten den C16 und P/4 erst mal kennen.

    cbmhardware.de/show.php?r=4&id=29/ Directory Browser Cartridge Code

    Ein sehr schöner Directory-Browser: plus4world.powweb.com/software/Directory_Browser in der Version 1.2


    Werde ich wohl in ein 3Plus1-Ersatz-ROM mit aufnehmen.
    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
  • Habe vor 10 Minuten meinen 10-Zeiler auf dem 8096-SK fertiggestellt für die BASIC 10Liners 2017


    Ein kleines Spiel mit Grafik und Musik, ich bin selber ganz begeistert! :) Hat auch nur ziemlich knapp
    in die 10 Zeilen gepasst, wobei mir im Nachhinein noch ein paar Optimierungsmöglichkeiten eingefallen
    sind, aber das bleibt jetzt so! :)

    Danke an alle, die mir in der Shoutbox mit Tips geholfen haben! :winke:

    Jetzt muss ich das nur noch lästigerweise in den Emulator tippen und dann noch eine Version mit
    einem Befehl pro Zeile erstellen (wer denkt sich solche Schikanen aus?), aber das mache ich heute
    nicht mehr!
    Bitte beachten: Telespielatorgesetz (TspG)
    Verstöße gegen das TspG werden umgehend und gnadenlos von Supererdbeeregeahndet!
  • Ich weiss nicht, ob ich das schonmal vorgestellt habe, aber ich habe vor einiger Zeit (ca. 2 Jahre) mal einen MIDI-Sequencer in Python geschrieben. Irgendwann hatte ich aber keine Lust mehr oder halt andere Projekte, somit blieb der lange ungenutzt. Jetzt habe ich mich heute mal aufgerafft und eine sehr simple Load/Save-Funktion eingebaut, sodass ich das Teil nun prinzipiell nutzen kann. Zwar fehlt immer noch einiges, aber ohne Load/Save war es eigentlich voellig unbrauchbar :D

    Der Sinn des Projekts ist es, einen MIDI-Sequencer zu haben, der sich wie ein klassischer Tracker bedienen laesst, allerdings um damit externe MIDI-Geraete anzusteuern. Ein wesentlicher Unterschied zu den meisten Trackern ist der, dass es nicht einfach nur Patterns gibt, sondern es gibt Patterns und einen Song, der aus mehreren (MIDI-)Spuren besteht. Das heisst, im Gegensatz zu herkoemmlichen Trackern baut man den Song nicht durch Aneinanderreihung von Patterns auf, in welchen dann immer gleich alle Spuren vorhanden sind (Schlagzeug, Bass, Melodie usw), sondern die Patterns sind immer nur fuer einzelne Instrumente gedacht, man macht also z.B. ein Schlagzeug-Pattern, ein Bass-Pattern und ein Melodie-Pattern, und im Song View wird das ganze dann erst zu einem Song arrangiert. Dies ist fuer meinen Geschmack um einiges besser und flexibler. Haupt-Inspiration hierfuer ist Jeskola Buzz (das kennt bestimmt der ein oder andere hier). Auch kann man die Patterns in eine beliebige Spur setzen, ein Bass-Pattern muss also nicht zwigend dann auch in die Bass-Spur gesetzt werden, sondern die koennte ich auch zusaetzlich noch in einer voellig andere Spur setzen, damit sie von einem anderen Synthesizer gespielt wird. Es ist also wie man sieht sehr flexibel.

    Hier mal ein paar Screenshots (im wahrsten Sinne des Wortes):


    Hier noch ein "sauberer Screenshot" ohne Alpen-Panorama im Hintergrund (laesst sich ein- und ausschalten, bzw. auch die Farben lassen sich beliebig waehlen):


    Hier noch ein Video des ganzen in Aktion:
    SHOTGUN - 4-Player Death Match - Website / CSDb / X-Mas
    FROGS - 4-Player Frog Pond - Website / CSDb
  • ZeHa schrieb:

    ich habe vor einiger Zeit (ca. 2 Jahre) mal einen MIDI-Sequencer in Python geschrieben.
    Sehr geil, mein Lieber :applaus: . Sehr cooles Projekt!
    Mein Vorname ist Marco.
    -----
    Hätte Sid Vicious Sid Wizard benutzt???
    Die Amis rätseln bis heute wie man thE rZA ausspricht.
    Wir sehen uns in Comet Chat, #c64friends, q-link, Neohabitat und diversen BBS.
  • Neu

    Inspiriert von dem Thread mit den floating point Problemen auch einmal ein simpler Emulator. Hab mich drei Tage mit den Flags rumgeärgert, bis endlich in der Einschaltmeldung die 38911 Bytes standen. Die Erlärungen für das Overflow-Flag sind ziemlich unklar. Und letztlich war es doch das Carry, das ich an einer Stelle falsch hatte.
    Was ein geiles Gefühl, wenn da das erste Mal Ready steht ;)