Ich versuche den Wert einer bestimmten Position (i, j) in 3 verschiedenen Matrizen zu ändern (multiplizieren mit einem int), abhängig von einer Bedingung. Allerdings, wenn ich die ganze Matrizen drucken scheint es, dass es die erste von allen Ints ist Multiplikation (auch die, die für den zweiten und dritten MatrizenMatrizen überschreiben sich gegenseitig
Hier habe ich die globalen Matrizen und Attribute einschließlich einiger Speicherzuweisung deklarieren.
int HEIGHT;
int WIDTH;
int ** matrixR= new int*[HEIGHT];
int ** matrixG= new int*[HEIGHT];
int ** matrixB= new int*[HEIGHT];
Dann in einer Funktion, die ich die Matrizen vervollständigen:
for(i=0; i<HEIGHT; i++){
matrixR[i]= new int[WIDTH];
matrixG[i]= new int[WIDTH];
matrixB[i]= new int[WIDTH];
}
Hier sind die Bedingungen, die ich für jede Matrix bewerten:
for (int i = 0; i < HEIGHT; ++i) {
for (int j = 0; j < WIDTH; ++j) {
float suma = pow(i - centerY, 2) + pow(j - centerX, 2);
if (suma > pow(radius, 2)) {
matrixR[i][j] = matrixR[i][j] * 1;
}
}
}
for (int i = 0; i < HEIGHT; ++i) {
for (int j = 0; j < WIDTH; ++j) {
float suma = pow(i - centerY, 2) + pow(j - centerX, 2);
if (suma > pow(radius, 2)) {
matrixG[i][j] = matrixG[i][j] * 2;
}
}
}
for (int i = 0; i < HEIGHT; ++i) {
for (int j = 0; j < WIDTH; ++j) {
float suma = pow(i - centerY, 2) + pow(j - centerX, 2);
if (suma > pow(radius, 2)) {
matrixB[i][j] = matrixB[i][j] * 3;
}
}
}
Dann, wenn ich drucken, um die Elemente der ersten Matrix:
for (int k = 0; k < HEIGHT; ++k) {
for (int i = 0; i < WIDTH; ++i) {
cout << matrixR[k][i] << " | ";
}
cout << '\n';
}
Wo ich matrixR[i][j]*1
bekommen sollte ich bin immer matrixB[i][j]
. Überschreiben sich die Matrizen? Ist irgendwas falsch?
Gut geschrieben en Frage. :) – MordechayS
Was ist der Punkt von 'matrixR [i] [j] = matrixR [i] [j] * 1;'? –
Haben Sie die Werte in Ihren Matrizen initialisiert? –