Помогите решить:
Дано три целых числа, определяющих положение центра окружности на экране и ее радиус. Если окружность не пересекает горизонтальную прямую, проходящую через середину экрана, то высветить данную окружность и окружность, симметрическую данной относительно этой прямой.
В чем проблема? Не знаешь, как определить, пересекаются ли прямая и окружность? Ничего проще: если координата Y центра окружности строго меньше чем ((GetMaxY div 2) - R) или строго больше, чем ((GetMaxY div 2) + R), то окружность и прямая НЕ пересекаются.
Как чертить прямые и окружности - см. Help на Line/Circle
Помогите доделать задачу:
Дано три целых числа, определяющих положение центра окружности на экране и ее радиус. Если окружность не пересекает горизонтальную прямую, проходящую через середину экрана, то высветить данную окружность и окружность, симметрическую данной относительно этой прямой.
Ты второй пост внимательно прочел? Я же написал: ИЛИ ... ИЛИ
if (y<((getmaxy div 2)-r)) OR (y>((getmaxy div 2)+r))
then { Начертить симметричную окружность }
А как начертить симметричную окружность???
Uses
Graph;
Var
gd,gm,x,y,r,d: Integer;
Begin
WriteLn('Vvedite x,y,r: ');
ReadLn(x,y,r);
gd:=Detect;
InitGraph(gd, gm, 'c:\tp\bp\bgi');
line(0, GetMaxY div 2, GetMaxX, GetMaxY div 2);
Circle(x,y,r);
d:=y - (GetMaxY div 2);
if abs(d) >= r
then Circle(x, (GetMaxY div 2) - d, r);
ReadLn;
CloseGraph
end.