SKy Scripter
2007-04-12 17:12:59
Play it :)
program Value_Of_Ratios;
// by : Sky Scripter
Const
Sin_Height = 100;
Sin_Curve = 180; // must be 1 - 360
Cos_Height = 100;
Cos_Curve = 180; // must be 1 - 360
var
Canvas: TCanvas;
Procedure DrawSineEquation;
Var x, y, i, d:Integer;
begin
for i:= 0 to 720 do
begin
x:= i;
y:= Trunc(Sin_Height * Sin((pi / Sin_Curve) * x) + 200);
Canvas.Pixels[x, y]:= 46591;
for d:= 0 to 7 do
If (( d * 90 ) = i) then
Canvas.TextOut(x, y+1, inttostr(i - 360));
if (i = 720) then
Canvas.TextOut(x-15, y+1, inttostr(i - 360));
end;
end;
Procedure DrawCosSineEquation;
Var x, y, i:Integer;
begin
for i:= 1 to 720 do
begin
x:= i;
y:= Trunc(-Cos_Height * Cos((pi / Cos_Curve) * x) + 200);
Canvas.Pixels[x, y]:= 16711935;
end;
end;
procedure DrawRatios;
begin
Canvas:= GetDebugCanvas;
Canvas.Brush.Color:= clBlack;
Canvas.Brush.Style:= bsSolid;
Canvas.Pen.Color:= clBlack;
Canvas.Rectangle(0, 0, 720, 400);
Canvas.Pen.Color:= clWhite;
Canvas.MoveTo(0, 200);
Canvas.LineTo(720, 200);
Canvas.MoveTo(360, 0);
Canvas.LineTo(360, 400);
Canvas.Brush.Style:= bsClear;
Canvas.Font.Color:= Clwhite;
DrawSineEquation;
DrawCosSineEquation;
Canvas.Font.Color:= 46591;
Canvas.TextOut(10, 150-Sin_Height, 'y = Sine(x)');
Canvas.Font.Color:= 16711935;
Canvas.TextOut(70, 150-Cos_Height, 'y = Cos(x)');
end;
procedure SafeDrawRatios;
var
V: TVariantArray;
begin
setarraylength(V, 0);
ThreadSafeCall('DrawRatios', V);
end;
begin
DisplayDebugImgWindow(725, 400);
SafeDrawRatios;
end.