Fragen zum Ansatz

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Pebender

Betreff: Fragen zum Ansatz

BeitragSo, Jun 26, 2011 13:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

da dies mein erster Post ist, möchte ich mal eine kleine Vorabinfo geben.
Habe mich bisher in VB.net versucht, aber das was ich eventuell vorhabe, kann man in VB fast realisieren.
Nun meine Frage an die Profis von hier.

ich möchte eine Windowsanwendung schreiben, in die ich ein Bild laden, und danach über zwei buttons oder über einen Slider zoomen kann.
Desweiteren sollen einzelne Steine(bilder) aus verzeichnissen ausgelesen werden, diese wiederum in einem Bildfeld per zufall angezeigt werden.
Diese Steine dürfen sich aber nicht überschneiden.

ist soetwas mit BB+ realisierbar ???

mfg Peter
 

Sterbendes Lüftlein

BeitragSo, Jun 26, 2011 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Text entfernt
 

PhillipK

BeitragSo, Jun 26, 2011 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Realisierbar ist es, sicher ^^

Nur der Ansatz ist variabel. Was genau willst du denn mit diesem 'Bild' ? Speichern und gut?

Ich schreibe mal einen simplen ansatz - allerdings ist dieser wahrscheinlich nicht so einfach ausführbar, da ich die BB+ syntax nicht kenne. Ich habe lediglich die befehle aus der HILFE zusammengesucht und mit meinem groben wissen von früher zusammengeschustert.
Ich persönlich arbeite nurnoch mit Blitzmax, weshalb ich da ein wenig was durcheinander gewürfelt haben könnte.

Allerdings ist es auch nicht meine Aufgabe, dir deine Arbeit abzunehmen - Das soll nur als 'Simpler' lösungsansatz helfen. Es gibt sicher noch Bessere methoden, allerdings wüsst ich grade keine BB+ method (nur BMX lösungen, sorry Sad )

BlitzBasic: [AUSKLAPPEN]

;Graphics initialisiert ein fenster zur Grafik-ausgabe. 1024x768 als Größe.
Graphics(1024,768)

;LoadImage lädt dein Bild! Der erste Parameter - hier "Blubb.png" - ist der absolute / Relative pfad zu deiner Datei! Dieser befehl würde hier die datei Blubb.png laden, welche sich im Selben ordner wie dein Programm befinden müsste! - 2 Ist der modus, steht für Dynamic image.
Global bild = LoadImage("Blubb.png",2)
Global stein_img = LoadImage("Stein.png", 2)

;Ein wert, den ich für das Scalen nuitze!
Global scale = 0

;Ein simpler Counter Wink
Global counter = 0

;Mit dim lassen sich wohl Array's bestimmen^^ Weiß nimemr so wirklich :3 1001 einträge jedenfalls.

Dim stein (1000)

While Not KeyHit(KEY_ESCAPE)
Cls
If KeyDown(14) ;Backspace Taste wurde gedrückt!
;Bei druck auf Backspace den letzten stein löschen :)
If counter > 0 Then
stein (counter-1) = Null
counter = counter -1
EndIf
EndIf
If KeyDown(28) ;Enter wurde gedrückt!
;Bei druck auf Enter einen stein hinzufügen :)
stein (counter)\x = Rnd(10, 1014) ; x wert des aktuellen steins ändern!
stein (counter)\y = Rnd(10, 758) ; y wert des aktuellen steins ändern!
counter = counter+1
EndIf

scale = MouseZSpeed() ; Mausrad geschwindigkeit ermitteln - Sollte 0 sein, wenn das mausrad nicht bewgt wurde!

If scale <> 0 Then ; Wenn das mausrad bewegt wurde...
ScaleImage(bild, 1+(scale / 4.0), 1+(scale / 4.0)) ; ... bild skalieren! Dh zoomen :>
;ich gehe davon aus, das scale ein wert zwischen -1 und 1 ist! dh die rechnung 1 / 4.0 sollte 0.25 zurückgeben! 1+ 0.25 ergibt also eine skalierung von 1.25! Das entspricht mit ScaleImage allerdings einem exponentiellen zoom, verbesserungsbedarf :)
scale = 0 ; vorsichtshalber scale zurücksetzen^^
EndIf

Cls ;dieser Befehl Leert den Background Buffer!

DrawImage(bild, 0,0) ; Wir zeichnen unser bild an position 0/0

For Local a = 0 Until counter ; mit dieser schleife sollte 'a' von 0 bis Counter-1 laufen!

DrawImage(stein_img, stein (a)\x, stein (a)\y) ; hier werden die Steine aus dem array ausgelesen.
Next
Flip 1 ; Dieser befehl tauscht den FRONTBUFFER mit dem BACKGROUNDBUFFER aus, dh unser bild wird für diesen frame 'sichtbar'
Wend

; Ich weiß nicht ob Objekte in BB+ existieren, ich hoffe es einfach mal.
Type TStein ; Das name des objekts!
Field x ; Ein eintrag - unsere gewünschte X koordinate!
Field y ; Ein eintrag - unsere gewünschte Y koordinate!
End Type

Eingeproggt

BeitragSo, Jun 26, 2011 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
ich möchte eine Windowsanwendung schreiben, in die ich ein Bild laden, und danach über zwei buttons oder über einen Slider zoomen kann.
[...]
ist soetwas mit BB+ realisierbar ???


Streng genommen: Jein.
Klar ist es möglich. Also so wie Phillip das demonstriert ist mal ne Möglichkeit, aber eine die bei größeren Bildern keinen Spass macht, weils etwas langsam ist in der Ausführung. Schneller gehts aber mit B+ kaum.
Realisierbar also ja, aber ob es wirklich das is was du willst musst du nun selber wissen.

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

PhillipK

BeitragSo, Jun 26, 2011 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Eingeproggt hat Folgendes geschrieben:
Zitat:
ich möchte eine Windowsanwendung schreiben, in die ich ein Bild laden, und danach über zwei buttons oder über einen Slider zoomen kann.
[...]
ist soetwas mit BB+ realisierbar ???


Streng genommen: Jein.
Klar ist es möglich. Also so wie Phillip das demonstriert ist mal ne Möglichkeit, aber eine die bei größeren Bildern keinen Spass macht, weils etwas langsam ist in der Ausführung. Schneller gehts aber mit B+ kaum.
Realisierbar also ja, aber ob es wirklich das is was du willst musst du nun selber wissen.

mfG, Christoph.


Huch, mein ansatz funktioniert also? :3
Wenn man blitzmax verwöhnt ist, ist es echt schwer, mit BB+ zu schreiben Smile

@Pebender:

Nun, vielleicht solltest du uns erstmal erklären, was das genau für ein Bild ist Smile

Da du was von Steinen erzählt hast, tippe ich auf eine Landschaft.
Das Zoomen dieser verstehe ich nicht genau - und vorallem was am ende damit bezweckt werden soll.
Sollte es sich um eine Landschaft handeln, wäre es zu überlegen, ob man die "Zoomstufen" vorher erstellt und je nach Zoomfaktor aufruft, statt neu zu Scalen!
Ausserdem ließe sich überlegen, ob dann nicht eher kleine Landschafts-kacheln (Tiles) einen sinn ergeben Smile

Naja, ich bin gespannt, was du vor hast. Denk dran: Keine erklärung, keine hilfe =)

Eingeproggt

BeitragSo, Jun 26, 2011 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, bei genauerem Hinsehen wird vermutlich so ne Zeile:
BlitzBasic: [AUSKLAPPEN]
For Local a = 0 Until counter

in BB Probleme machen von der Syntax her... aber egal ob dein Ansatz funktioniert oder nicht, er zeigt die Idee mit ScaleImage. Und da sind wir uns ja einig, das is so langsam dass man event. sogar besser die "Zoomstufen" vorher erstellt... oder sich halt gut überlegt was man überhaupt will?

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Pebender

Betreff: Realisierbar

BeitragSo, Jun 26, 2011 21:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

vielen Dank für die ganzen Antworten.
Das keine Missverständnisse aufkommen, mal eine Erklärung wie ich mir das Programm vorrstelle.
Ganz grob:

ich möchte ein Bild als Vorlage(Muster) laden.
ein zweites Bildfeld in dem ich die einzelne Steine hineinlade( per Zufallsgenerator)
die Steine gibt es in verschiedenen Farben, die ich prozentual einstellen will.
Ziel soll sein, das das zweite Bildfeld dem ersten Bildfeld mit dem Muster ähnlich kommt.
Die Bildfelder selbst, sollen so ca. 300 x 300 pixel groß werden.
Das ganze soll eine Anwendung für Berufszwecke werden, also kein Spiel.
 

PhillipK

BeitragSo, Jun 26, 2011 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Oookay Smile

Mein gehirn kommt nicht ganz mit - Ähnlich kommen?

Möchtest du eine Art Mosaik-generator schreiben, welcher aus Steinchen ein Bild "nachbaut"? o0

Nun, die Farbe kannst du mit BlitzBasic: [AUSKLAPPEN]
Color 255,255,255
einstellen.
"Bilderfelder" an sich würde ich am einfachsten über einen Offset Realisieren.

Meinen Oben genannten ansatz kannst du insoweit verwenden, das das Zoomen / Scalen klappt. Das mit den Steinen hatte ich falsch interpretiert Smile Ich denke, mit 300x300 pixeln sollte es keine nennenswerten Laggs geben. Aber es ist auch nur ein Ansatz, den du durcharbeiten und verstehen kannst. Lass den krams mit den Steinen, dem druck auf Enter und Backspace, und das Type erstmal weg. ^-^ Die Forschleife enthält ausserdem den Fehler, das BB+ kein until unterstützt, es muss "To Counter-1" heißen Razz
Leider weiß ich nichts genaues über die Draw möglichkeiten in BB+, da muss dir schon ein anderer unter die Arme greifen Smile

Mal so nebenbei, hast du ein Foto oder ähnliches, wie du dir das Projekt vorstellst?

Xeres

Moderator

BeitragSo, Jun 26, 2011 23:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei einer Anwendung ist die Geschwindigkeit / Echtzeitfähigkeit erst mal egal. Wichtiger wäre, was nun eigentlich gemacht, und in welchem Format es gespeichert werden soll. BlitzMax würde sich mit Alpha & PNG eher anbieten, oder gar ein Gimp-skript o.ä. (da es sich sehr nach Bildbearbeitung anhört) - mit B+ muss man halt ggf. etwas tricksen...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Pebender

Betreff: Realisierbar ??

BeitragMo, Jun 27, 2011 14:56
Antworten mit Zitat
Benutzer-Profile anzeigen
so, dann zeige ich euch mal ein Bild .

Bild

Und bitte Kommt nicht mit kaufen, diese Software ist nicht käuflich, habe schon nachgefragt

mfg Peter

Xeres

Moderator

BeitragMo, Jun 27, 2011 15:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah, jetzt wird klar was du willst... Entweder man verwendet Tilebare Bilder oder die ganze Textur wird durch einen Algorithmus generiert.
Realisierbar? Ja. Einfach? Nicht unbedingt.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Pebender

Betreff: Realisierbar ??

BeitragMo, Jun 27, 2011 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Xeres,

das ist eigentlich das, was ich hören wollte.
Ich habe aber leider noch die vollen Anfangsschwierigkeiten, ist irgendwie die Umstellung von VB zu BB+.
Wenn ich mal einen Einstieg gefunden habe, wie das mit der Programmstruktur funktioniert, wird es sicherlich
etwas einfacher.
Sobald ich das raus habe, werde ich mir die BB+ Vollversion zulegen.

mfg Peter
 

PhillipK

Betreff: Re: Realisierbar ??

BeitragDi, Jun 28, 2011 4:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Pebender hat Folgendes geschrieben:
Hallo Xeres,

das ist eigentlich das, was ich hören wollte.
Ich habe aber leider noch die vollen Anfangsschwierigkeiten, ist irgendwie die Umstellung von VB zu BB+.
Wenn ich mal einen Einstieg gefunden habe, wie das mit der Programmstruktur funktioniert, wird es sicherlich
etwas einfacher.
Sobald ich das raus habe, werde ich mir die BB+ Vollversion zulegen.

mfg Peter


Bevor du etwas Kaufst - was genau erwartest du von BB+?
Du schreibst, als hättest du noch keinerlei erfahrungen mit BB+ - so wäre es evtl ratsam, das du dir von vornherein das richtige Programm aussuchst und damit rumspielst Smile
Leider weiß ich nicht, was am besten geeignet wäre, aber vielleicht hat hier jemand (mit erfahrung) ein paar Pro-Contras parat, bevor du evtl nur eine - für dein Problem - 2t klassige lösung 'lernst' und kaufst Smile
Das heißt, im klartext, gibt es noch andere gebiete, wofür du BB+ einsetzen würdest? Wie fiel deine wahl auf BB+?

skey-z

BeitragDi, Jun 28, 2011 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Da würde ich mir eher Blitz Max zulegen, da du Bilder in Echtzeit skalieren und rotieren kannst.

eine Gui und viele andere Erweiterungen gibt es auch gratis.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Pebender

Betreff: Realisierbar ??

BeitragDi, Jun 28, 2011 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo PhillipK,

also auf BB+ bin ich schon mal vor längerer Zeit gekommen, habe dann aber mich in VB6 hineingearbeitet,
und wollte jetzt den Umstieg auf VB.net machen.Habe mir auch einige Bücher zugelegt und erstmal zum testen VB.net Express von MS gezogen(ist kostenlos).
Aber das was ich machen will scheint in VB.net fast unmöglich, dies sagte man mir in den VB-Foren.
Als ich dann vor ein paar Tagen einen prof. VB-Programmierer gefragt habe, hat dieser nur mit den Augen gerollt, und mir auch bestätigt, das es allein mit den Pixel Kollisionen fast unmöglich ist.
Also habe ich DR.Google gefragt, und bin wieder an BB gekommen.
BB erinnert mich irgendwie an die alte gute Dos Zeiten ,so alla GW-Basic,Q-Basic u.s.w
Und da sowie ich es gelesen habe mit BB die Kollisionen relativ "einfach"(gegenüber VB) sein soll,
dachte ich mir ich probiers einfach mal.

Außerdem gefällt mir euer Forum besser als die VB-Foren Very Happy

mfg Peter
 

BIG BUG

BeitragMi, Jun 29, 2011 2:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Prinzip ist ja eigentlich recht einfach: Mehrere generierte und/oder bestehende Texturen werden auf bestimmte Weise überlagert um eine neue Textur zu erstellen.
Wenn sich die Auflösung der Zieltexturen im Rahmen hält (z.B.512x512 bis max. 1024x1024) könnte man hier in Blitz3D oder BlitzMax einfach ein paar texturierte "Quads" oder "Planes" übereinander legen um den Effekt zu erreichen. Wenn Dein Rechner über eine vernünftige Grafikkarte verfügt, wäre ein Editieren in Echtzeit kein Problem.
Bei BlitzPlus oder höher aufgelösten Texturen müsstest Du das Ganze in 2D erledigen so dass es natürlich langsamer wird. Hier könntest Du dann aber auch bessere Qualität erreichen, da Du mit generischen Texturen ja keine Beschränkung bei der Auflösung hast.

Geht es Dir darum selbst ein Programm zu schreiben oder reicht Dir ein bestehendes Tool um solche Texturen zu generieren? Hier gäbe es die folgenden beiden interessanten Programme:

MapZone:
http://www.mapzoneeditor.com/

Genetica:
http://www.spiralgraphics.biz/
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

Pebender

BeitragMi, Jun 29, 2011 7:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo BIG BUG,

erstmal danke für die Links.
Aber das Programm, wie ich es mir vorstelle, ist eigentlich so fachspezifisch, das man um selbst schreiben nicht rumkommt.
Voe einigen Jahren gab es mal so ein Programm Namens "Virtual Beauton", diese wird nicht mehr betrieben und es ist unmöglich dies irgendwo zubeziehen.
Habe bei den Entwicklern nachgefragt, und bei den Großhändlern die dies betrieben haben.
Es gibt eine Onlineversion auf die man gegen eine monatliche Gebühr von 300€ zugreifen kann, allerdings verpflichtet man sich auch dabei die entworfenen Muster bei denen zubestellen.
Das Hauptproblem dabei ist aber auch , das die das fertige Produkt erst ab einer Menge von mindestens 500m² produzieren.

Da ich selbständig bin, und im Moment alleine arbeite ist das eine Menge Holz.

mfg Peter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group