Автор: first_day 8.03.2008 3:05
Подскажите, пожалуйста, как найти площадь n-угольника(n<=4) по координатам вершин и как определить точку пересечения двух прямых, если задано по 2 точки, через которые каждая из прямых проходит?
Автор: compiler 8.03.2008 3:28
Цитата(first_day @ 7.03.2008 22:05)
Подскажите, пожалуйста, как найти площадь n-угольника(n<=4) по координатам вершин и как определить точку пересечения двух прямых, если задано по 2 точки, через которые каждая из прямых проходит?
1) Площадь n-угольника через координаты его вершин
(работает ли для не выпуклых фигур не знаю)
а вообще если (n<=4), то можно рассмотреть три случая, если это треугольник, прямоугольник и прочее(точка, отрезок) и решать исходя отсюда
2) Я бы составлял уравнения прямых и решал систему, но насколько это оптимально?..
для уравнения:
Автор: first_day 8.03.2008 3:43
так у меня же 4 точки... не очень пойму уравнение...
Автор: compiler 8.03.2008 15:47
Цитата(first_day @ 7.03.2008 22:43)
так у меня же 4 точки... не очень пойму уравнение...
уравнение для каждой прямой своё, итого два уравнения прямых.. для нахождения точки пересечения тебе будет необходимо ее решить...
Автор: Michael_Rybak 8.03.2008 17:07
Цитата
так у меня же 4 точки... не очень пойму уравнение...
если прямая проходит через точки (x1, y1) и (x2, y2), то точки, принадлежащие этой прямой, будут иметь вид
X = x1 + k * (x2 - x1)
Y = y1 + k * (y2 - y1)
Это, к слову, называется параметрическим представлением этой прямой.
Записываешь такое же представление для точек второй прямой:
X = x3 + q * (x4 - x3)
Y = y3 + q * (y4 - y3)
Поскольку у тебя точка должна принадлежать и первой прямой, и второй, тебе нужно найти такую пару (k, q), чтобы X и Y совпали:
x1 + k * (x2 - x1) = x3 + q * (x4 - x3)
y1 + k * (y2 - y1) = y3 + q * (y4 - y3)
Решаешь эту систему относительно k и q, и подставляя, например, k, получаешь X и Y.
Автор: first_day 8.03.2008 19:47
Спасибо, что откликнулись. Я нашел, как мне кажется, более простое решение через коэффициенты A,B,C уравнения Ax+By+C=0.
Просто мне это нужно для программирования, а решать систему уравнений - лишний напряг.