Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

07.12.2012, 12:58

Hallo!
Ich habe noch eine eher triviales Problem, aber ich kriegs einfach nicht gelöst!
Also ich hab das Bild liegt zusammenhängend (Reihe für Reihe) im Speicher. Der Zugriff erfolgt ganz einfach so:

C-/C++-Quelltext

1
2
3
4
5
for(int i = 0; i < image.rows * image.cols; i++)
{
    if(image[i] == white)
        whitepixels.push_back(pair(x,y));
}

Hier nun das Problem: Ich schaffe es einfach nicht aus i die beiden Koordinaten x und y zu berechnen. Mir ist klar das es eigentlich ganz einfach seien sollte, aber ich kriegs nicht hin... Könnte mir jemand zeigen wies geht?
Danke im Voraus
Foaly

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

12

07.12.2012, 13:19

00 01 02 03 04
05 06 07 08 09
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24

Kann doch nicht so schwer sein da die Zeilen und Spalten rauszurechnen, oder? ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

13

07.12.2012, 13:50

Du brauchst eine Division und Modulo. ;)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

14

07.12.2012, 15:29

Alternativ-Vorschlag:

C-/C++-Quelltext

1
2
3
4
5
6
7
for(int y = 0; y < rows; y++){
    for(int x = 0; x < cols; x++){
        if(m_pixel[ was könnte man hier wohl machen? ] == white){
                       //...
                }
    }
}


(auf Wunsch von Nacho verschlechtert ;))

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »DeKugelschieber« (07.12.2012, 15:43)


15

07.12.2012, 20:03

Vielen Dank für die Anregungen! (Und danke das es keiner Verraten hat!!!) Mir war ja von Anfang an klar, dass das total einfach ist, ich stand einfach nur total auf Schlauch... Hab nen paar Stunden was anderes gemacht und mich dann nochmal ran gesetzt und zack hat auf Anhieb geklappt!
Ich habs so gemacht: Mit einem for loop und dann in der if abfrage folgendes:

C-/C++-Quelltext

1
2
3
int column = i % numOfColums;
int row = (i - column) / numOfColums;
whitepixels.push_back(pair(column, row));

Das war doch gemeint oder?
Vielen Dank nochmal,
Foaly

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

16

07.12.2012, 20:30

C-/C++-Quelltext

1
int row = i / numOfColums;

reicht doch ;)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

17

07.12.2012, 20:31

Das "- column" kannst du weglassen. Es würde ohnehin hinter dem Komma landen und weggerundet werden.

Edit:
NachoNinja war schneller.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

18

07.12.2012, 20:32

NachoNinja war schneller.

:ninja:

Was ist eigentlich "pair"?
Benutzt man dafür nicht eigentlich std::make_pair?
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

19

07.12.2012, 20:52

make_pair gibt ein pair zurück. Nur pair ist dann der Konstruktor. Wie das intern aussieht weiß ich allerdings auch nicht genau.

Karsten Schulz

unregistriert

20

07.12.2012, 21:11

zensiert

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »Karsten Schulz« (09.12.2012, 14:41)


Werbeanzeige