JabbaTehHut24
Grünschnabel
Hi ich müsste ein Bild um den Mittelpunkt drehen, erstmal um 90°
ich habe hier diesen C / C++ code
allerdings versteh ich die Zeile
dout[i*sx + j] = din[ry*sx + rx];
nicht.
In meinem Bild sind die Pixel in einem zweidimensionalem Array gespeichert.
Pixels[columns][rows]
Pixelwerte sind als Integer gespeichert.
kann mir jemand hierbei helfen?
ich habe hier diesen C / C++ code
Code:
template <typename T>
void rotate(T* din, T* dout, unsigned sx, unsigned sy, double w)
{
for (unsigned i = 0; i < sy; ++i)
{
for (unsigned j = 0; j < sx; ++j)
{
signed rx = (signed)((double)j*cos(w) - (double)i*sin(w));
signed ry = (signed)((double)j*sin(w) + (double)i*cos(w));
if (rx < 0 || ry < 0 || rx >= sx || ry >= sy)
continue;
dout[i*sx + j] = din[ry*sx + rx];
}
}
return;
}
allerdings versteh ich die Zeile
dout[i*sx + j] = din[ry*sx + rx];
nicht.
In meinem Bild sind die Pixel in einem zweidimensionalem Array gespeichert.
Pixels[columns][rows]
Pixelwerte sind als Integer gespeichert.
kann mir jemand hierbei helfen?