Rückgabewerte
-
Danke!!!!
Danke auch für den Hinweis mit dem BBCode!!!!
Und wie genau gebe ich am besten die beiden werte zurück...
mit nem struct???
-
Devil's Daughter schrieb:
Und wie genau gebe ich am besten die beiden werte zurück...
mit nem struct???Ja, das ist recht hübsch, z.B. mit der std::pair Klasse aus der Standardbibliothek.
MfG
GPC
-
könnte das so funktionieren????
std::pair<int,int>qsplatdrr::Volume_MaxMin() { Voxel vox; uint volIntMax=0; uint volIntMin=0; uint w = qsplatdrrVolume -> Width; uint h = qsplatdrrVolume -> Height; uint d = qsplatdrrVolume -> Depth; uint v = qsplatdrrVolume -> Value; for (uint wv=0; wv < w; wv++) { for (uint hv=0; hv < h; hv++) { for (uint dv=0; dv < d; dv++) { vox.X = wv; vox.Y = hv; vox.Z = dv; if (v > volIntMax) { volIntMax = v ; } if (v < volIntMin) { volIntMin = v; } } } } return std::make_pair(volIntMax,volIntMin); }und wie kann ich das dann in diesen teil einbauen??
float qsplatdrr::qsplatdrrPrepareVolume(uint intMin,uint intMax, short intensitiesSet) { if (!intensitiesSet) { intMin = (uint)volIntMin+1; intMax = (uint)volIntMax; } }
-
Was soll Volume_MaxMin bewirken? In der derzeitigen Form sind die Schleifen völlig sinnlos. Das return würde so schon funktionieren. Auf die einzelnen Werte eines pair greift man mit first und second zu.
BTW schau dir auch mal std::max und std::min an.
-
1. Auch wenn mir der Inhalt der Funktion nicht ganz klar ist - technisch ist das richtig.
2. first/second:
pair<int,int> vals=Volume_MinMax(); intMax=vals.first; intMin=vals.second;
-
Hi,
es soll den maximalen und minimalen value eines volumen finden.........
die schleifen sind dazu da...dass jeder einzelen voxel überprüft wird....aber mir kommt grad...da brauch ich den struct nicht...oder????
so sieht mein struct aus:
typedef struct { uint Width; uint Height; uint Depth; QGLColormap *Colormap; int VoxelWidth; int VoxelHeight; int VoxelDepth; uint Value; } Volume; typedef struct { uint X, Y, Z; } Voxel;
-
Bloß, dass du in deinen Schleifen nichts prüfst. Irgendwo müsste doch v neu belegt werden. So vergleichts du immer das gleiche v mit deinen Werten.
-
und wie könnte ich das verbessern???
im prinzip ist der value ja an jeder stelle im volumen unterschiedlich....
-
Um das sagen zu können bräuchte man wohl mehr Informationen.
Du hast da eine Variable vom Typ Voxel die die Raumkoordinaten hält. Was genau macht Volume? Wie ist die Verknüpfung zwischen Volume und Voxel? Irgendwo brauchst du doch ein 3D-Array der voxel in dem die Daten gespeichert sind. Wo ist das?
Das sind aber eher Design-Fragen.
-
ja bei der verknüpfung ist mein problem...weiß nicht wie ich das genau anstellen soll.......
wie könnte man volume struct und voxel struct durch einen 3d array verbinden???
-
Um was geht es denn eigentlich.
Ich denke übrigens, dass das jetzt eher eine Frage fürs "Rund um die Programmierung" oder "Projekte"-Forum ist. Mit dem eigentlichen Thread-Titel hat das jetzt ja nichts mehr zu tun.
-
habs schon verschoben...
danke für den hinweis!