Wonach ich nun gestern einmal doch ein Programm ausprobiertze, dass mit einem moving Average arbeitete, da aber wirklich keine schönen Bilder herauskamen, bin ich doch wieder dazu übergegangen die normale Lösung anzugehen.
Zitat:inc(pBR,BRows*YLenF);
pBC:=pBR;
// pBR: Pointer auf nächste Zeile! Eine Zeile ist YLenF hoch und BRows breit.
end;
Ich gehe gerade durch dein Programm und versuche es nachzuvollziehen, allerdings habe ich an der oben zitierten Stelle ein Problem. Müßte es da nicht eher heißen: inc(pBR,BCols*YLenF); schließlich wollen wir in die nächste Zeile springen und eine Zeilenlänge wird doch gerade durch die Anzahl der Kolumnen vorgegeben. Der Teil dp:=(BCols-YLenF-1); soll ja auch einen Zeilenvorsprung bewirken und dort rechnen wir auch mit BCols. allerdings hätte ich dann auch:
MRows:= (BRows div XLenF);
MCols:= (BCols div YLenF);
eher als folgendes geschrieben:
MRows:= (BRows div YLenF);
MCols:= (BCols div XLenF);
Diese Sache bereitet mir gerade noch größeres Kopfzerbrechen.