IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> графика, координаты точек
dagger
сообщение 4.11.2006 18:24
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


люди кто знает помогите.
нужно напечатать координаты точек, попадающих в заштрихованную фигуру, если координата Х изменяется от -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.




Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Archon
сообщение 5.11.2006 1:42
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Вот условие на попадание точки в область:
((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 и сверяй попадает ли точка в область.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
dagger
сообщение 5.11.2006 12:36
Сообщение #3





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


Цитата(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, как мне выделить
область правой нижней части окружности.

Сообщение отредактировано: dagger - 5.11.2006 13:05
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.11.2006 14:59
Сообщение #4


Гость






dagger, тебе же показали условие, при котором точка внутри фигуры? Теперь все просто: Ходи в цикле по всем координатам, и проверяй. Если точка внутри, то рисуй ее другим цветом... Заодно и посчитаешь, сколько точек попадают в фигуру, а сколько нет.
 К началу страницы 
+ Ответить 
Archon
сообщение 5.11.2006 23:30
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Цитата
а как мне выдилить область
допустим где многоугольники можно попробовать использовать процедуру FillPoly, как мне выделить
область правой нижней части окружности.
Графически? Используй FloodFill.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 1:53
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"