![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 16.10.2008
Сообщений: 11
|
![]()
Привет всем!
Вот интересует сия задача с таким текстом Дана область (рис 1. в прикреплениях) в круге который пересекает линия под 45 градусов. Радиус круга 2 см. Круг также удален на +1 см от X, и на +1 см от Y от нуля. Требование такое: После запуска программы надо ввести координаты точки (x,y) при нахождении ее в области ответом должно быть "Истина" в противном случае "Ложь". Каким-то мне не понятным образом надо засунуть туда уравнение круга X(в квадрате)+Y(в квадрате) = R(в квадрате) т.е. X2+Y2=R2 , в данном случае это 1+1=2. А уровнение линии знаю только X+Y=Z что-то в этом роде. Вот незнаю как круг отметить в программе и пересекающую линию и как эту область потом в программе выделить. include<stdio.h> include<math.h> include<iostream.h> main() {int x,y,z; cout<<"Введите координаты x,y"; cin>>x>>y; ввели координаты а дальше вроде как надо уровнение круга вписать, незнаю как Вроде как в таком же роде http://dmtsoft.ru/bn/85/as/oneaticleshablon/ ![]() ![]() По-моему должен быть такой алгоритм 1. Решаем попадает ли точка в круг. 2. Попадает ли точка в заданную полу плоскость. 3. Если по первым двум пункта "истина", то ответ истина. 1. Если расстояние от точки до центра груга меньше или равно радиуса, то точка в круге. 2. Если (k*x+a - уравнение прямой) k*x1+a -y1 <= 0 , то точка входит в полуплоскость. Только вот что обозначить в k*x1+a -y1 за k и a? и x1 и y1? в задаче подскажите кто что знает Последний раз редактировалось #Nii; 16.10.2008 в 07:05. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
направление мысли верное.
Вам надо если точка попадает ТОЧНО на границу - это считать за попадание в область... теперь по поводу решения. 1) уравнение Вашей линии y=x для точка (x1,y1) подставляйте в уравнение, если y1<x1, то точка НИЖЕ линии (т.е. попадает в вашу полуплоскость) 2) для круга: проверяйте расстояние от центра, если оно меньше радиуса, то точка попадает в круг if sqrt((x1-x0)^2 + (y1-y0)^2) < К - то попали... |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 16.10.2008
Сообщений: 11
|
![]()
Вот более менее исходник похожий на правду
Код:
Код:
Последний раз редактировалось #Nii; 16.10.2008 в 20:27. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найти координаты хотя бы одной точки, попадающей в область, образованную тремя пересекающимися линиями. | Zibiv | Помощь студентам | 1 | 03.10.2008 17:55 |
Область применения переменных | ixs | Общие вопросы Delphi | 2 | 05.06.2008 18:00 |
Отбражение чисел - точки, это точки, а не запятые, обозначающие дробную часть | Дикий | Помощь студентам | 7 | 12.05.2008 17:57 |
Область заголовка окна | HunterMan | Win Api | 3 | 14.04.2008 15:37 |
область видимости ? | artem779 | Общие вопросы Delphi | 3 | 14.09.2007 09:34 |