Помощь - Поиск - Пользователи - Календарь
Полная версия: графика
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
dagger
люди кто знает помогите.
нужно напечатать координаты точек, попадающих в заштрихованную фигуру, если координата Х изменяется от -3.5 до 2.5 с шагом dX=0.5, а координата У меняется от -3.6 до 2.4 с шагом dУ=0.4
саму фигуру я сделал, а вот с точками проблема.

program Figura;
uses Graph,Crt;
Const
Xc=320;Yc=240;
var c,Gd,Gm,a,b,a1,b1:Integer;x,y:real;
begin
Gd:=Detect;
InitGraph(Gd,Gm,'c:\bp\bgi');
If GraphResult<>grOk then Halt(1);
Circle(Xc,Yc,100);
Line(40,240,600,240);
Line(320,20,320,460);
OutTextXY(600,220,'X');
OutTextXY(300,20,'Y');
Line(420,100,420,280);{liniy s pravo proxod. 2}
Line(440,80,160,450);{liniy 0:0}
Line(170,450,170,150);{liniy proxod. -3}
Line(380,400,80,100);{y=-x-2}
Line(120,430,370,430);{gorizont. liniy}
Line(310,196,350,196);{ggoriz. 1 }
OutTextXY(425,250,'2');
OutTextXY(300,195,'1');
OutTextXY(300,130,'2');
OutTextXY(330,410,'-3');
OutTextXY(150,250,'-3');
OutTextXY(380,365,'Y^2+X^2=4');
repeat until keypressed
end.


Archon
Вот условие на попадание точки в область:
((y<=-x-2)and(x>=-3)and(x<=0)and(y>=-3))or((y>=x)and(x>=0)and(y<=1))or((y<=x)and(sqr(x)+sqr(y)<=4))or((y<=x)and(y>=0)and(x<=2))
Страшное условие mega_chok.gif
Далее преберай x и y в цикле while или repeat и сверяй попадает ли точка в область.
dagger
Цитата(Archon @ 5.11.2006 1:42) *

Вот условие на попадание точки в область:
((y<=-x-2)and(x>=-3)and(x<=0)and(y>=-3))or((y>=x)and(x>=0)and(y<=1))or((y<=x)and(sqr(x)+sqr(y)<=4))or((y<=x)and(y>=0)and(x<=2))
Страшное условие mega_chok.gif
Далее преберай x и y в цикле while или repeat и сверяй попадает ли точка в область.


а как мне выдилить область
допустим где многоугольники можно попробовать использовать процедуру FillPoly, как мне выделить
область правой нижней части окружности.
volvo
dagger, тебе же показали условие, при котором точка внутри фигуры? Теперь все просто: Ходи в цикле по всем координатам, и проверяй. Если точка внутри, то рисуй ее другим цветом... Заодно и посчитаешь, сколько точек попадают в фигуру, а сколько нет.
Archon
Цитата
а как мне выдилить область
допустим где многоугольники можно попробовать использовать процедуру FillPoly, как мне выделить
область правой нижней части окружности.
Графически? Используй FloodFill.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.