Irgendwie kommt noch immer nicht das raus, was raus kommen soll >___<
hm... weiß jemand von euch wo jetzt der Fehler liegt?
Delphi-Quellcode:
Procedure Func1;
function FRandom(fStart, fEnd: Extended): Extended;
begin
randomize;
result := fStart + (fEnd - fStart) * Random;
end;
const
m_nArms = 3;
nStars = 20000;
fRadius = 800;
var
FArmAngle : Extended;
FAngularSpread : Extended;
I: Integer;
fQ, fK, fR, fA, fX, fY : Extended;
aBMP : TBitmap;
begin
aBMP := TBitmap.Create;
aBMP.Width := 4000;
aBMP.Height:= 4000;
FArmAngle := (360 div m_nArms) * 360;// (360 / m_nArms) mod 360;
FAngularSpread := 180 / (m_nArms * 2);
for I := 1 to nStars do
begin
fR := FRandom(0.0, fRadius);
fK := 1;
fQ := IfThen(Random(2)=0, 1, -1) * FRandom(0.0, fAngularSpread);
fA := (Random(m_nArms)+1) * fArmAngle; //(Random mod m_nArms) * fArmAngle;
fX := fR * cos( DegToRad ( fA + fR * fK + fQ ) );
fY := fR * sin( DegToRad ( fA + fR * fK + fQ ) );
aBMP.Canvas.Pixels[Round(FX) + aBMP.Width div 2,
Round(FY) + aBMP.Height div 2] := clBlack;
end;
DeleteFile('C:\Test.bmp');
aBMP.SaveToFile('C:\Test.bmp');
end;
SIEHE ANHANG