Beiträge von bbock

    Nein, leider nicht. Es gibt bisher auf der ganzen Welt noch keine einzige VEC-Datei, die die Poly-Funktionen nutzt! :D

    TinySVG braucht sie nicht, und andere Programme, die Dateien im VEC-Format erzeugen, gibt es (noch) nicht. Bzgl. des Fill muss ich mir mal die entsprechende Grafik-Routine anschauen. Es ist jedenfalls nicht wie bei Simons' BASIC, wo zuerst das umrahmende Polygon gezeichnet wird und dann die Fill-Routine einen Startpunkt im Inneren des Polygons haben will.

    Oh, TSB ist eine fehlerbereinigte Version von Simons' Basic, Informationen dazu gibt es Bitte melde dich an, um diesen Link zu sehen. und Bitte melde dich an, um diesen Link zu sehen. auch. Der Viewer ist halt ein Basic-Programm, um die TinyVEC-Dateien "abzuspielen". :wink: Ich dachte mir, kann ja nicht schwer sein...

    Das ist ja interessant: ich habe bereits einiges mit Simons' BASIC gemacht und ich habe auch das Steckmodul. Dass Simons' BASIC einige Schwächen (und Fehler) hat, wusste ich bereits. Ich werde mir TSB einmal genauer ansehen. Vielen Dank für die Links!

    Da hab ich gleich eine Frage. Die Befehle "Multi-Dot", "Multi-Line" und "Polygon-Fill" hab ich in meinem Viewer nicht implementiert. Erstens, weil sie in keinem der Beispielbilder vorkommen, und zweitens, weil ich nicht genau weiß, was sie bewirken. Ich gehe bis jetzt davon aus, dass "Multi-Dot" am besten mit "Punktwolke" bestimmt werden kann, und "Multi-Line" mit "Linienzug". Stimmt das? Und "Polygon-Fill"? Geschlossener Linienzug, der am Ende gefüllt wird?

    Das VEC-Format habe ich ursprünglich für die Schneider Joyce (auch Amstrad PCW genannt) entworfen. Dort gibt es ein Grafikpaket, das genau diese Funktionen unterstützt. Für den C64 werden sie - jedenfalls in Verbindung mit TinySVG - nicht gebraucht. Deine Vermutungen bzgl. der Funktionalität sind richtig; offenbar sind sie selbsterklärend. :)

    Die Ergebnisse sehen recht gut aus. Die Grafiken können aber nicht gefüllt und farbig umgewandelt werden?

    Der Vorteil von Vectorgrafiken ist ja ihre freie Skalierbarkeit und der geringere Speicherbedarf.

    Da wäre jetzt eine Einbindung in Geos u.ä. ganz cool.

    TinySVG erzeugt nur "Strichzeichnungen"; Farbe, Gradientenfüllungen, Linienstärken u.v.a.m. werden ignoriert. Es ging mir zunächst nur um eine brauchbare Darstellung von SVG-Grafiken auf 8-Bit-Computern. Vielleicht lassen sich einige Attribute sinnvoll in C64-Grafiken darstellen, aber das würde ein anderes Grafikformat als VEC erfordern und zieht noch eine ganze Liste von Problemen nach sich. Aber wer weiß? Vielleicht gehe ich die Sache mal an. Aktuell muss ich noch einige andere Dinge erledigen, wie z.B. die Unterstützung von <defs> und <symbol> tags. Und dann wäre da noch die Unterstützung von Attributen in CSS, und, und, und...

    Immerhin können viele SVG-Grafiken jetzt ganz gut auf dem Homecomputer dargestellt werden, und das funktioniert bereits mit der aktuellen Version von TinySVG recht zufriedenstellend.

    Wie eine GEOS-Unterstützung aussehen sollte, ist mir nicht ganz klar. Ich muss gestehen, dass ich in meiner Jugend nicht im Commodore-, sondern im Sinclair-"Lager" war. Daher bitte ich um Verzeihung, wenn ich die eine oder andere Selbstverständlichkeit nicht kenne. Seit ein paar Jahren besitze ich aber einige C64 und auch einige dazugehörige Hardware (wie z.B. ein 1541 Ultimate II). Ich bin dabei mich intensiver damit zu beschäftigen - als Schüler reichte mein Taschengeld nicht für so feine Hardware...

    Die Grafiken können aber nicht gefüllt und farbig umgewandelt werden?

    In den Beispielen ist sowas zumindest nicht zu sehen. Wenn man wirklich eines Tages auf dem C64 auflösungsunabhängige Vektorgrafiken erzeugen könnte, wären solche Funktionen allerdings recht sinnvoll. Man könnte dann z.B. Logos oder einfache Illustrationen direkt auf dem C64 entwerfen/zeichnen. Wenn gefüllte Flächen zu aufwändig wären, um auf dem C64 performant dargestellt zu werden, gäbe es die Möglichkeit, ähnlich den frühen 2D-Verktorprogrammen, einen schnellen Edit-Mode (ohne Strichstärken, Flächenfüllungen, Farben etc.) und einen langsamen Ansichts-Mode zu implementieren.

    Man darf nicht vergessen, dass dafür auch die Skalierung der Vektordaten auf dem C64 erforderlich wäre. Das dürfe rechenintensiv und damit langsam werden. DRAWVECTOR zeichnet die Vektoren 1:1; die Skalierung wurde bereits in TinySVG auf dem PC durchgeführt.

    @Arndt:

    Es freut mich, dass mein Programm dir gefällt! Aber was ist eigentlich ein TSB-Viewer? Ist das eine bekannte C64-Software? Ich habe die D64-Datei mal kurz im WinVICE ausprobiert (war nicht kompliziert zu bedienen: TSB laden, dann TSBTinyVECViewer laden und einen Dateinamen eingeben). Der Viewer scheint aber langsamer als DRAWVECTOR zu sein.

    Neues "Futter": Der Clou bei TinySVG ist ja, dass man eine Unzahl an SVG-Dateien im Internet findet, die man einfach in VEC-Dateien umwandeln kann. Du findest z.B. eine große Auswahl freier SVG-Dateien unter Bitte melde dich an, um diesen Link zu sehen.

    Ein paar gezippte SVG-Dateien habe ich hier zur Verfügung gestellt: Bitte melde dich an, um diesen Link zu sehen.

    Und noch ein paar Grafiken:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Hier sind einige Beispielgrafiken um den Appetit anzuregen: :)

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    SVG (= Scalable Vector Graphics) ist das Standardformat für Vektorgrafiken im Internet. Leider ist dieses Format zu komplex um es direkt auf 8-Bit-Rechnern wie dem C64 darstellen zu können. Mein Java-Programm TinySVG extrahiert "Strichzeichnungen" aus SVG-Dateien und wandelt diese in vereinfachte Vektorformate für Retro Computer um.

    Die aktuelle Version von TinySVG ist in folgendem Thema auf joyceforum.de zu finden: Bitte melde dich an, um diesen Link zu sehen.

    Es handelt sich um ein Java-Programm, das in einer JAR-Datei verpackt ist. Sie sollte sich einfach durch einen Doppelklick starten lassen; falls das nicht funktioniert, dann geht es über die Kommandozeile: man wechselt in das Verzeichnis, in dem sich TinySVG.jar befindet und gibt

    Code
    java -jar TinySVG.jar

    auf der Kommandozeile ein. Voraussetzung ist eine installierte Java Runtime ab Version 8.

    Eine kleine TinySVG-Anleitung:

    1. TinySVG.jar per Doppelklick starten (Java Runtime ab Version 8 erforderlich).
    2. Unter Optionen > Konfiguration sollten folgende Punkte aktiviert sein: Zentrieren, Größe anpassen, Bézier-Kurven-Annäherung, Bogen-Annäherung, Linienreduktion aktivieren.
    3. Unter Voreinstellungen "C64" wählen; das setzt die Einstellungen für Ausgabedateien und Bildschirmauflösung automatisch.
    4. Die Konfiguration mit OK bestätigen.
    5. Datei > Öffnen > SVG-Datei auswählen.
    6. Die SVG-Datei wird geladen und in eine VEC-Datei umgewandelt. Die .vec-Datei ist in dem Verzeichnis zu finden, in dem sich auch die SVG-Datei befindet, nur eben mit der Endung .vec (z.B. laempel.svg -> laempel.vec).

    Das Format der VEC-Datei ist unter o.g. Link auf joyceforum.de zu finden.

    Jetzt brauchen wir noch ein Programm um VEC-Dateien auf dem C64 anzuzeigen:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Die D64-Datei enthält das C64-Programm DRAWVECTOR und einige VEC-Dateien zum Ausprobieren.

    DRAWVECTOR wurde mit dem Cross-Compiler cc65 in C geschrieben und verwendet die TGI-Bibliothek. Für den Diskettenzugriff wurde stdio verwendet. Anscheinend arbeitet die library nur mit dem Floppy-Kanal 8, daher müssen sich Programm und VEC-Datei(en) auf einer Diskette im Laufwerk 8 befinden, damit alles ordnungsgemäß funktioniert. Ich arbeite an einer Lösung diese Einschränkung aufzuheben; bisher waren meine Versuche jedoch noch nicht von Erfolg gekrönt...

    Die D64-Datei kann man z.B. in einem C64-Emulator wie WinVICE öffnen oder man kopiert sie auf eine Micro-SD-Karte und lädt sie mit 1541 Ultimate II. Mit letzterem Gerät kann man die Dateien auch auf echte Disketten kopieren; dazu habe ich eine Anleitung im Forum64 gefunden:

    Bitte melde dich an, um diesen Link zu sehen.