 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Adrian
Anmeldungsdatum: 18.08.2010 Beiträge: 1
|
Verfasst am: 18.08.2010, 17:35 Titel: 3-dimensionales Array auslesen |
|
|
Hi zusammen, bin als FreeBasic-Neuling an meine Grenzen gestoßen (vor 20 Jahren mal AmigaBasic genutzt...rmhh und damit immerhin 'nen kleinen zellulären Automaten geschafft...)
Vielleicht kann mir jemand zwei Fragen beantworten:
1.
Ich erzeuge ein 2-dim. Feld (width * height) mit 15 Farbwerten auf Zufallsbasis. Diese Farbwerte sollen in einer for-next-schleife jeweils mit ihrer Pixelposition(x,y) im 3-dim. Array eingelesen werden:
Ich deklariere also erstmal den Array:
Code: | DIM AS INTEGER farbe(width, height, 15) |
Wie weise ich die Farbwerte mit der xy-Position dem Array zu?
Code: | for y=0 to height
for x=0 to width
pset(x,y),zufallsfarbwert
???
next
next
|
2.
In einem weiteren Durchgang benötige ich die Farbwerte bestimmter Positionen. Wie lese ich diese aus dem erzeugten Array aus?
Danke im Voraus, Adrian |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 18.08.2010, 18:06 Titel: |
|
|
Hallo und willkommen im Forum!
Ich habe noch nicht ganz durchschaut, warum das Array dreidimensional deklariert wird, du aber einer XY-Position lediglich einen Farbwert zuordnen möchtest.
Dafür würde ja auch eine zweidimensionale Matrix reichen:
Code: | DIM AS INTEGER farbe(width, height)
farbe (123,456) = 15 'An der Koordinate (X,Y)=(123,456) steht die Farbe 15 (weiß) |
Unter dieser Annahme müsste dein Code so aussehen:
Code: | for y=0 to height
for x=0 to width
pset(x,y),zufallsfarbwert
farbe(x,y) = zufallsfarbwert
next
next |
...oder, wenn die 3 Dimensionen nötig sind:
Code: | for y=0 to height
for x=0 to width
pset(x,y),zufallsfarbwert
farbe(x,y,zufallsfarbwert) = ???
next
next |
Zur zweiten Frage:
Zitat: | In einem weiteren Durchgang benötige ich die Farbwerte bestimmter Positionen. |
Code: | Print farbe (123, 456) 'Farbcode im Punkt (X,Y)=(123,456) ausgeben |
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 18.08.2010, 23:31 Titel: |
|
|
0 to height sieht mir etwas komisch aus (was aber nix heißt)...
es _könnte_ sein, dass Sebastian eigentlich 0 to heigth-1 meint (wäre jedenfalls für C-code so), kann aber auch sein dass er recht hat,
in jedem fall (und im letzten ganz besonders, weil missverständlich!) ist es oft übersichtlicher, ein array mit " anfang to ende " zu deklarieren (also 1 to width in deinem Fall) _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.08.2010, 23:32 Titel: |
|
|
Flo hat Folgendes geschrieben: | wäre jedenfalls für C-code so |
Das hat nix mit der Sprache, sondern mit Konventionen bzw logischem Denken zu tun. Wenn dein Bild h Pixel hoch ist, dann kannst du die entweder von 1 bis h indizieren (scheiße) oder von 0 bis h - 1 (gut). _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 18.08.2010, 23:43 Titel: |
|
|
joa. oder, bei äußerst kranken konventionen könnte ein derartiges dim auch von 0 bis height DIMen... ich weiß es nicht, und bei basic wäre ich da eher vorsichtig...
allerdings zählen grade anfänger lieber von eins, und nicht von null. _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|