Könnte mir jemand sagen ob das jetzt so in Ordnung ist?
Denn so richtig kommt da bei mir nichts an.
Das ist das letzte.
Delphi-Quellcode:
begin
d := round(Fade * 64);
Buf := SpectrumData2D;
if FSymmetrical
then
begin
o := 0;
s := w * 2;
end
else
begin
o := 0.5;
s := w;
end;
for Y := 0
to h
do
begin
for X := 0
to w
do
begin
if (X > h)
or (Y > w)
then
continue;
cx := X / s - o;
cy := Y / h - 0.5;
r := round(Sqrt(cx * cx + cy * cy));
dx := round((cx + o + 0.01 * cx * ((r - 1) / 0.5)) * s);
dy := round((cy + 0.5 + 0.01 * cy * ((r - 1) / 0.5)) * h);
//a := ((Buf[dx, dy] and $FF000000) div $1000000) and 256) - d;
a := ((Buf[dx, dy]
shr 24)
and 256) - d;
// muss 256 hier addiert werden oder nicht!
//c := Buf[dx, dy] and $FFFFFF;
c := Buf[dx, dy]
and RGB(255, 255, 255);
if a > 127
then
// SpectrumData2D[X, Y] := c or ((a - 256) * $1000000)
SpectrumData2D[X, Y] := c
or ((a - 256)
shl 24)
else
// SpectrumData2D[X, Y] := c or (a * $1000000);
SpectrumData2D[X, Y] := c
or (a
shl 24);
end;
end;
end;
gruss