0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
|
|
1 | |
Точка в треугольнике29.12.2010, 18:24. Показов 26409. Ответов 34
Метки нет (Все метки)
Помогите!
даны три вершины треугольника с координатами(коорд вводятся с клавиатуры) А(х1,y1) B(х2,y2) и С(х3,y3). И вводятся координаты другой точки Д(х4,y4)-и нужно определить принадлежит эта точка треугольнику или нет!А перед этим еще проверить возможен ли треугольник с такими точками.
0
|
29.12.2010, 18:24 | |
Ответы с готовыми решениями:
34
Определить, находится ли точка в треугольнике Лежит ли точка в круге и треугольнике Определить и напечатать, находится ли точка в треугольнике Треугольник в треугольнике |
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
||||||
29.12.2010, 19:39 | 2 | |||||
0
|
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
|
29.12.2010, 20:41 | 3 |
asics, как у вас работает проверка на возможность существования треугольника с задаными координатами?
0
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
|
29.12.2010, 20:46 | 4 |
Mayonez, Если точки находятся на одной линии, то соответственно нельзя построить данный треугольник, а что что-то не так ?
0
|
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
|
|
29.12.2010, 20:47 | 5 |
А как он может не существовать? 3 точки всегда преобразуют одну плоскость. Следовательно, и треугольник. Единственный вариант - координаты точек совпадут...
Да, или на одной прямой. Это можно по одной формуле (расположение то4ки относительно прямой) вычеслить...
0
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
|
29.12.2010, 20:55 | 6 |
Ошыбаетесь, три точки которые не лежат на одной прямой всегда преобразуют одну и только одну плосткость.Это вытекает из аксиомы стереометрии, точно уже не помню какой именно.
0
|
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
|
29.12.2010, 21:01 | 7 |
ну, например, для координат треугольника 0 0, 2 2, 3 3
проверка дает + Добавлено через 2 минуты а как проверяется приналежность точки треугольнику? Через площадь???
0
|
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
|
29.12.2010, 21:16 | 9 |
Ввод:
0.346 0.236 -0.474 -0.568 0.567 2.346 2.437 -0.2 выдает NO
0
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
||||||
29.12.2010, 21:29 | 10 | |||||
Mayonez, А если так ?
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
29.12.2010, 21:45 | 11 |
Проще через площади посчитать ИМХО...
0
|
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
|
29.12.2010, 21:46 | 12 |
Чтобы проверить, можно ли образовать с заданых точек треугольник, нужно найти длину всех сторон и воспользоватся тем, что сумма двух любых сторон не должна превышать третью
0
|
29.12.2010, 21:50 | 13 |
Допустим имеется треугольник ABC, находим его площадь по трем вершинам, далее, чтобы определить попадает ли точка в заданную область находим площади треугольников: DAB, DBC, DAC; если Sabc=Sdab+Sdbc+Sdac тогда точка принадлежит.
2
|
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
|
29.12.2010, 21:53 | 14 |
Можно и через площади, но тогда нужно, чтобы координаты были целыми числами, тогда площадь - полуцелое число. Тогда можна сравнить удвоенные величины площадей (найденых через псевдоскалярное произведение)
0
|
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
||||||
29.12.2010, 21:57 | 15 | |||||
Если координаты - целые числа:
Находим площадь ABC. Если она равна площади ABD+BCD+ADC значит точка лежит внутри треугольника. В противном случае площадь ABC будет меньше второй суммы найти площадь таким образом:
1
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
29.12.2010, 21:57 | 16 |
Mayonez, а что, нынче с дробными числами работать не удаётся? Аппаратные трудности? Или над их полем умножение не определили?
0
|
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
|
29.12.2010, 22:01 | 17 |
скорее програмные
допустим, площадь треугольника 15 ед^2 елси точка внутри имеет НЕ целые координаты: 10.783245324623 + 2.125346347 + 2.103246326236 не равно 15.0!
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||||||
29.12.2010, 22:05 | 18 | |||||
Mayonez, если уж на то пошло, то 15 не равно 15 (в том виде, в котором это 15 хранится в типе double). Поэтому сравнивают переменные типа double не так. Обычно это делают так:
0
|
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
|
|
29.12.2010, 22:17 | 19 |
а если эта погрешность окажется и точка будет лежать за треугольником - программа выдаст - ДА
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
29.12.2010, 22:33 | 20 |
Mayonez, к сожалению, когда рассчитывают траектории космических кораблей, пользуются именно тем способом сравнения, который я указал...
Добавлено через 3 минуты А вообще я не понял, о чём мы спорим? Те же погрешности появляются и в псевдоскалярном произведении... Что вы хотели, компьютер - вещь дискретная, и при расчётах всегда найдется интервал меньше, чем минимально возможный, представимый в памяти...
0
|
29.12.2010, 22:33 | |
29.12.2010, 22:33 | |
Помогаю со студенческими работами здесь
20
Дана точка М(x, y). Присвоить z = 1, если точка принадлежит окружности с радиусом R и центром в точке (a, b) и z = 0 в противном случае. Дана ограниченная область и точка A(x0, y0). Написать программу, которая проверяет, попадает ли точка с координатами пол Найти углы в треугольнике Даны отрезки [a, b] и [c, d] и точка A с координатой х. Определить, принадлежит ли данная точка одному из этих отрезков, обоим или лежит вне их Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |