Du bist nicht angemeldet.

Kontrollzentrum

Spenden

Jeder Euro hilft uns, euch zu helfen.

Adsense

Downloads

Stabil: 3.3.8.1 (Q, H)
Stabil: 3.3.12.0 (Q, H)
Beta: 3.3.11.5 (Q, H)
SciTE: 4/5/2014 (Q, H)
Hilfe Deutsch: 12/23/2013 (Q)
Download: OrganizeIncludes (Q)
Stand: 02.06.2014 - 2:21 Uhr

Lieber Besucher, herzlich willkommen bei: AutoIt.de - Das deutsche AutoIt-Forum. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

Marsi

Snickers hat Nüsse

  • »Marsi« ist der Autor dieses Themas

Registrierungsdatum: 14. Februar 2010

  • Private Nachricht senden

1

Mittwoch, 21. September 2011, 19:16

Prozedurale Grafiken

Guten Abend.

Irgendwann vor geraumer Zeit tauchten mal Spiele mit prozeduralen Grafiken auf (in ASM).
Das was da Präsentiert wurde kann ich natürlich nichtmal annähernd erreichen.

Da ich in der Grafikgeneration großes Potential sehe (man kann z.B. Animierte Hintergründe oä gestalten indem man einige Parameter in der Prozedur verändert), habe ich mir überlegt, dass GDI+ (und WinAPI, aber das wird iwann nachgerüstet. Es ist ja alles im Aufbau) eigentlich alles nötige besitzt. Man muss ja das Rad nicht 10Mal neu erfinden.

Alte Beschreibung

Das vorliegende ist im Prinzip also alles nur GDI+, oder eigene Funktionen als Kürzel zusammengesteckt und von AutoIt interpretiert. Dabei geht die Übersicht zu 105% verloren, aber das is erstmal wurscht^^
Zum Beispiel zwei Beispiele:
Beispiel 1:
Dieses Bild wurde mit Folgendem Code erzeugt: 'Smo 4|Cle $v1|SBc $v2|FPi -$b,-$h,$b*3,$h*3,$i,5~0~360~10|SBc $v3|FEl -$b/3+$b*$i/$m,-$h/3+$h*$i/$m,$b*5/3-($b*$i/$m)*2,$h*5/3-($h*$i/$m)*2~1~90~1|Blur'


Beispiel 2:
Die Folgenden Bilder unterscheiden sich in der Prozedur nur in 3 zeichen. (Die man auch als Parameter setzen könnte. Dann ist die Prozedur gleich und man muss nur einen Parameter ändern)





Vorteile der prozeduralen Lösung:
- Kaum Speicherverbrauch (in Kompillierter Form ca. 20 KB für den Interpreter und dann weniger als 1KB Pro Bild)
- (fast) Beliebige Bildmaße (je größer das Bild, desto länger dauert das erzeugen)
- Animation durch Veränderung von Parametern möglich.
- Man hat selbst bei AutoIt Programmen endlich einen grund für einen Ladebalken^^
- Einbau von Eigenen Funktionen möglich.

Nachteile:
- Schlechte Übersicht über den Code wenn er erstmal zusammengefasst ist. Zeilenweise kann man ihn mit etwas Mühe lesen wenn man die Funktionen hinter den Kürzeln kennt.
- Bilder können natürlich nicht erstellt werden. Nur relativ simple Grafiken (Vektorgrafiken, keine Bitmaps)
- Bei bisher sind nur sehr einfache Schleifen im interpretierten Code möglich. (ein For - Einzeiler. Mehrere zeilen gehen nicht)
- Langsame Ausführung wenn die Bilder größer werden. Gleichzeitiger Vorteil, da bei großen Bildern natürlich viel Speicher gespaart wird. So kann man große Grafiken nutzen, die sonst mehrere MB hätten und so nur ein paar Bytes verbrauchen)

Ich will hier eigentlich nicht groß auf den Putz hauen. Deshalb steckts auch im OffTopic.
Ich möchte nur die Meinung dazu, und ob sowas evtl jemand gebrauchen kann.
Aus eigenen Interessen (Vollbildspiele) werde ich das Thema sowieso so gaanz nebenbei weiterverfolgen.

zu guter Letzt das Skript :P

z. 10: Größe des Entstehenden Bildes verändern
z. 29f: Beispiel2
z. 25f: Beispiel1

Nach kleinen Veränderungen am Skript ist nun folgendes anzumerken:
- Grafiken lassen sich in Deutsch herstellen (Kein seltsames anderstsprachiges schreiben mehr)
- Es gibt eine Dokumentation über alle verfügbaren Befehle
- Ein GUI ist auch mit dabei
- Bilder können nun einfach gespeichert werden
- Es macht jetzt auch Spaß :P

Vor und Nachteile bleiben ähnlich, bis auf:
- Die Übersicht geht nicht mehr verloren, da man jetzt mit Returns eine Neue Zeile einleitet statt mit "|"
- Einige Befehle kamen im Update hinzu
- Jetzt einfach zu handhaben. (vorher musste man seltsame Buchstabenkombinationen im Programmcode verändern. Das macht das Programm jetzt selbst)

Codebeispiele

Um ein Bild zu generieren ist nunmehr folgendes nötig:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
Kantenglättung: Ein
FülleAlles: 0xFF0090D8
ZufälligeKreise: 50,3,5,1,0x80FFFFFF,False
ZufälligeKreise: 500,1,2,2,0x80FFFFFF,False
Kantenglättung: Aus
PinselFarbe: 0x20FFFFFF
Wiederhole: 0,40,2
FülleRechteck: $b/80+$i*$b/40,0,$b/40,$h
PinselFarbe: 0x06FFFFFF
Wiederhole: 1,70,1
FülleEllipse: -$b/3+$b*$i/$m,-$h/3+$h*$i/$m,$b*5/3-($b*$i/$m)*2,$h*5/3-($h*$i/$m)*2
Weichzeichnen

Das Programm macht dararaus dann:

Quellcode

1
00Ein|020xFF0090D8|0350,3,5,1,0x80FFFFFF,False|03500,1,2,2,0x80FFFFFF,False|00Aus|040x20FFFFFF|0D$b/80+$i*$b/40,0,$b/40,$h~0~40~2|040x06FFFFFF|0B-$b/3+$b*$i/$m,-$h/3+$h*$i/$m,$b*5/3-($b*$i/$m)*2,$h*5/3-($h*$i/$m)*2~1~70~1|0A


Ein Befehl endet, sofern er Parameter besitzt mit einem Doppelpunkt
Die Trennung mehrerer Befehle erfolgt durch ein Return

Parameter (nötig um das Bild zu animieren) können eingesetzt werden ($v1, $v2, $v3 und $v4), sind aber im GUI noch nicht eingebaut.

Der alte Dateianhang beinhaltet die vorherige Version (ohne alles so zu sagen^^)
Der Neue beinhaltet die Überarbeitete Fassung mit GUI.

lg
Mars(i)
»Marsi« hat folgende Dateien angehängt:

Meine Skripte können nix, aber ich preise sie dennoch als Wunderwerke an !

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Marsi« (12. Oktober 2011, 12:31)


Marsi

Snickers hat Nüsse

  • »Marsi« ist der Autor dieses Themas

Registrierungsdatum: 14. Februar 2010

  • Private Nachricht senden

2

Dienstag, 11. Oktober 2011, 13:29

So ganz hat es mich nicht verlassen und (inzwischen ist es schon ein paar Tage her) nun gibt es die "Sprache" auch in "Verständlich".
Man kann also jetzt auf Deutsch ein Bild herstellen. (z.B. Fülle Alles : 0xFFFF0000 ---> Das Ganze Bild wird Rot.)

Die Abstürze und einige andere Fehler sind gefunden und größtenteils behoben.

Dazu gibts ein GUI, in dem man das Bild aufbauen kann.
Das Fertige Bild kann man Speichern (Auflösung max.9999px. Aber das kann man ja anpassen. Der PC rechnet dann halt eine Weile^^)
Oder Das was einem in der Vorschau angezeigt wird Speichern
Oder die Prozedur etwas zusammengefasst speichern. Dabei wird aber NICHT der Deutsche Text gesichert, sondern das, was das Programm interpretiert.

lg
M
»Marsi« hat folgende Datei angehängt:
  • Blubb.rar (65,72 kB - 58 mal heruntergeladen - zuletzt: Gestern, 17:42)

Meine Skripte können nix, aber ich preise sie dennoch als Wunderwerke an !

Registrierungsdatum: 18. November 2008

Wohnort: Nürnberg

Beruf: Fachinformatiker für Systemintegration (Ausgelernt)

  • Private Nachricht senden

3

Dienstag, 11. Oktober 2011, 15:13

Hi,

habs mal getestet, ist ja richtig nett auch wenn ich warscheinlich keine Verwendung
dafür finden werde, :thumbup:

Gruß

Prajoss
"Never touch a running System!"

UEZ

AutoIt Lehrling im 5. Lehrjahr

Registrierungsdatum: 25. November 2008

Wohnort: Rhein-Main

  • Private Nachricht senden

4

Dienstag, 11. Oktober 2011, 15:27

Sehr interessante Spielerei und sauber programmiert! :thumbsup:

Grafische Spielereien sind i.d.R. "nur brotlose Kunst" und meistens eher was für's Auge und meistens eher selten zu gebrauchen.

Aber nichts desto trotz finde ich immer wieder klasse, irgend welche grafischen Spielereien zu sehen. Mach weiter so (hast dich sehr gut entwickelt!!!) :thumbsup:

Hauptsache es macht SPPPPPAAAAAAAAASSSSSSSSSSS! ;-)

Gruß,
UEZ
¯\_(ツ)_/¯

  Spoiler Spoiler


Funktionen: _GUICtrlMenu_CreateBitmap() v0.60 Build 2012-01-07 beta, _GUIImageList_AddBitmapEx() v0.80 Build 2011-11-05 Beta, nNumber v0.90 Build 2010-11-11 Beta, Process Info v0.35 Beta, File_Seeker v0.85 Build 2010-12-01 Beta, Get_Schtasks v0.90 build 2010-12-30 Beta, _WinAPI_SetWindowTitleIcon v0.96 Build 2012-06-03 Beta
GDI: GDI+ Beispiele, Visualization: Analog Meter, Plasma Variante, Screensaver, Rotating Letters, (einige mehr GDI+ Beispiele ), GDI+ Image Rotator and Saver Build 2009-12-23, GDI+ Rotating Cubes, GDI+ Zoomer, GDI+ Visualizer Oscilloscope Farbrausch Build 2010-09-08, GDI+ Pixel Text Effect Beta Build 2010-10-21, GDI+ Simple Clock build 2011-04-06, GDI+ Buchstaben Rotation, GDI+ Perfect Illusion Build 2011-06-02
Misc: Play Chip Sound from Memory, Simple Image Slideshow v1.0 Build 2011-04-30 Beta
Progs: SIC2 v2.0.1 Build 2012-02-24 Beta inkl. GUI, Integer<=>Binary Converter v1.0 Build 2011-09-19, Fussball Chronograph v1.4 Build 2010-03-09, AutoIt Windows Screenshooter v1.77 Build 2014-02-18, Tiny URL Downloader v0.96 Build 2011-01-24, Head - Tail v0.65 Build 2011-03-15 Beta, Check Ping Status v1.05 Build 2014-09-19 Beta, Uptime v0.76 Build 2011-12-13, AD Tools, ISO Creator v1.16 build 2012-09-11 beta, File to Base64 String Code Generator v1.17 Build 2014-08-01
Spiel: AUTOITEROIDS v1.019 Build 2012-07-30
UDF: Write Text on Bitmap.au3 v0.92 Build 2011-05-28 Beta, ArrayUnique v0.96 Build 2010-11-20 Beta, Get_Image_Info v0.80 Build 2011-05-03 Beta, Shuffle_Array v0.50 build 2011-05-24 beta


Cheater Dieter

Tippspielsieger EM 2012

Registrierungsdatum: 27. Mai 2011

Wohnort: Baden

Beruf: Schüler

  • Private Nachricht senden

5

Dienstag, 11. Oktober 2011, 17:11

Wow, nicht schlecht :thumbsup: .
GrooveLoad

Geh mit Gott, aber geh!


Andy

Märchenonkel

Registrierungsdatum: 3. Dezember 2008

Beruf: Selbstausbeuter :o)

  • Private Nachricht senden

6

Dienstag, 11. Oktober 2011, 21:10

Was soll ich sagen.....wieder mal ein echter Marsi! :thumbsup:
Sehr fein, klasse Idee, TOP umgesetzt!

Aber wie UEZ schon sagte, brotlose Kunst (TROTZDEM ist es eine KUNST!).
Aber es macht Spass :D , ansonsten ist es doch auch langweilig, wenn man keine Herausforderung hat^^
ciao
Andy


"Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
"Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt

Marsi

Snickers hat Nüsse

  • »Marsi« ist der Autor dieses Themas

Registrierungsdatum: 14. Februar 2010

  • Private Nachricht senden

7

Mittwoch, 12. Oktober 2011, 12:49

Schön, dass es euch gefällt :)

Eine Anwendung wird sich dafür schon finden :P

Im nächsten Schritt (der aber noch dauern wird, weil ich ja nicht den ganzen Tag frei habe^^) wird dann das Animieren im Vordergrund stehen.
Dazu sind die (jetzt erstmal weggefallenen) Parameter für die Erstellung vorgesehen.

lg
Mars(i)

Meine Skripte können nix, aber ich preise sie dennoch als Wunderwerke an !

autoit.de Webutation