Vanilla 1.1.5a jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
Uses Crt,Graph;
Type TCo = (PrzecinajaSie,StyczneWew,StyczneZew,RozlaczneZew,RozlaczneWew);
TOkrag = object
x,y,R : LongInt;
end;
Const Pierwszy : TOkrag = (x:320;y:240;R:100);
Drugi : TOkrag = (x:420;y:340;R:41);
Var Sterownik,Tryb : Integer;
Odleglosc : LongInt;
function Sprawdz(Co : TCo) : string;
begin
Sprawdz:='Falsz';
Odleglosc:=Abs(Round(Sqrt(Sqr(Drugi.x-Pierwszy.x)+Sqr(Drugi.y-Pierwszy.y))));
case Co of
StyczneWew : if Odleglosc=Abs(Pierwszy.R-Drugi.R) then Sprawdz:='Prawda';
StyczneZew : if Odleglosc=Abs(Pierwszy.R+Drugi.R) then Sprawdz:='Prawda';
RozlaczneZew : if Odleglosc>Abs(Pierwszy.R+Drugi.R) then Sprawdz:='Prawda';
RozlaczneWew : if Odleglosc<Abs(Pierwszy.R-Drugi.R) then Sprawdz:='Prawda';
PrzecinajaSie : if (Abs(Pierwszy.R-Drugi.R)<Odleglosc) and
(Odleglosc<Abs(Pierwszy.R+Drugi.R)) then Sprawdz:='Prawda'
end
end;
Begin
InitGraph(Sterownik,Tryb,'C:\BP\BGI');
Line(Pierwszy.x,Pierwszy.y,Drugi.x,Drugi.y);
Circle(Pierwszy.x,Pierwszy.y,Pierwszy.R);
Circle(Drugi.x,Drugi.y,Drugi.R);
OutTextXy(0, 0,'Przecinajace sie :'+Sprawdz(PrzecinajaSie));
OutTextXy(0,10,'Styczne zewnetrznie :'+Sprawdz(StyczneZew));
OutTextXy(0,20,'Styczne wewnetrznie :'+Sprawdz(StyczneWew));
OutTextXy(0,30,'Rozlaczne zewnetrznie :'+Sprawdz(RozlaczneZew));
OutTextXy(0,40,'Rozlaczne wewnetrznie :'+Sprawdz(RozlaczneWew));
repeat until KeyPressed;
CloseGraph
End.
Od 1 do 5 z 5