Вверх ↑
Этот топик читают: Гость
Ответов: 8888
Рейтинг: 823
#16: 2013-02-04 20:58:11 ЛС | профиль | цитата
Присоединяюсь к andrestudio
sla8a, ошибка в округлении 1Е-6 великовата, расчёты ведутся в 15-ти десятичных цифрах, 1Е-13 самый раз!
Принятый метод по площади универсален для любых выпуклых фигур, можно и для массива вершин такой метод применить.
Молодец!
карма: 19

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#17: 2013-02-04 22:07:35 ЛС | профиль | цитата
Мне вот очень интересно высказывание Ivanna

3.159.access.ttknet.ru писал(а):
А без корней и квадратов никак?


Очень интересно бы видеть реализацию такой задумки
карма: 22

0
Ответов: 8888
Рейтинг: 823
#18: 2013-02-04 23:22:30 ЛС | профиль | цитата
nesco писал(а):
Очень интересно бы видеть реализацию
Тоже можно, но вычислений, наверное, больше:
1. Если Хтчк>Xmax всех вершин фигуры или Хтчк<Xmin или то же по Yтчк, то точка вне фигуры, иначе:
2. Из точки проводим два отрезка (лежащие на одной линии) в разные сторона, для упрощения расчётов вертикально или горизонтально так, чтобы они выходили за Ymax и за Ymin (Xmax, Xmin) и определяем координаты точек пересечения с отрезками фигуры у которых Ха<=Xтчк<=Xb (Yа<=Yтчк<=Yb), в этих формулах нет корней (см CrossLine), если у одного из проведённых отрезков нет пересечения, то точка вне фигуры.
карма: 19

0
Гость
Ответов: 17029
Рейтинг: 0
#19: 2013-02-05 19:23:51 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2021-06-24 07:09:34
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#20: 2013-02-05 21:08:01 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2021-06-24 07:09:33
карма: 0

0
Ответов: 3349
Рейтинг: 233
#21: 2013-02-05 21:24:09 ЛС | профиль | цитата
Не думаю, что тригонометрические функции быстро вычисляются, хотя не уверен.
карма: 1

0
Ответов: 8888
Рейтинг: 823
#22: 2013-02-05 22:12:41 ЛС | профиль | цитата
Ivann, молодец!, вычислять площади через сумму/разность квадратиков я, к примеру, не догадался Подсмотрел где-нибудь?
Tad, в треугольнике можно без ошибки определить ближайшую сторону и крутить координаты только по ней
карма: 19

0
Ответов: 3349
Рейтинг: 233
#23: 2013-02-05 22:51:26 ЛС | профиль | цитата
Леонид, Подобное задание из ЕГЭ часть С было.
Там было что то вроде принадлежности точки прямоугольному треугольнику с прямым углом в начале координат, и двумя известными катетами.
Потом, переосмыслив, сделал для произвольного треугольника, по принадлежности точки двум углам, пробовал еще с линейными функциями проработать, но что то не вышло.
Там получалось что то вроде если точка лежит ниже двух функций, но выше третьей, или выше двух, но ниже третьей то точка принадлежит треугольнику.
------------ Дoбавленo в 22.51:
Там тоже в принципе без корней получалось, только деление, которое на ноль нужно было проверять, но что то у меня не получилось.
карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#24: 2013-02-05 23:02:50 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2021-06-24 07:09:33
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#25: 2013-02-05 23:57:20 ЛС | профиль | цитата
Леонид писал(а):
Tad, в треугольнике можно
Можно. Леонид, а я то тут при чём ?
Задача писал(а):
Определить принадлежит ли точка с координатами (0,0) треугольнику с вершинами в точках (Х1,Y1), (Х2,Y2), (Х3,Y3).
и как её решил MBo из Новосибирска:


function ZeroInTriangle(X1, Y1, X2, Y2, X3, Y3: Integer): Boolean;
var
D12, D23, D31: Integer;
begin
D12 := X1 * Y2 - X2 * Y1;
D23 := X2 * Y3 - X3 * Y2;
D31 := X3 * Y1 - X1 * Y3;
Result := (D12 * D23 > 0) and (D23 * D31 > 0)
end;
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#26: 2013-02-06 00:08:46 ЛС | профиль | цитата
Tad,
[flood]
Tad писал(а):
а я то тут при чём ?

Они и тебя посчитали [/flood]

карма: 22

0
Ответов: 8888
Рейтинг: 823
#27: 2013-02-06 09:22:25 ЛС | профиль | цитата
nesco,
карма: 19

0
Ответов: 165
Рейтинг: 7
#28: 2014-06-01 23:25:42 ЛС | профиль | цитата
nesco писал(а):
нахрена такой компонент вообще нужен, не подскажешь

Без понятия

думаю для вывода кадров в неправильную область
у меня подобная есть,работает через массив точек, не помню откуда портировал,но работала
code_33711.txt
карма: 1

0
файлы: 1code_33711.txt [2.5KB] [363]
28
Сообщение
...
Прикрепленные файлы
(файлы не залиты)