Страница 1 из 1

Уравнение прямой, проходящей через 2 точки

СообщениеДобавлено: 01.03.2010 (Пн) 23:20
DreamShark
Есть координаты двух точек в плоскости.
Как составить уравнение прямой вида Ax+By+C=0, проходящей через эти точки.

Спасибо!

Re: Уравнение прямой, проходящей через 2 точки

СообщениеДобавлено: 02.03.2010 (Вт) 0:26
Viper
DreamShark писал(а):Есть координаты двух точек в плоскости.
Как составить уравнение прямой вида Ax+By+C=0, проходящей через эти точки.

Спасибо!
Это же элементарно - уравнение прямой проходящей через 2 точки:
(y-y1)/(y2-y1)=(x-x1)/(x2-x1)
Отсюда получаем:
(y2-y1)x-(y2-y1)x1-(x2-x1)x+(x2-x1)y1=0
Следовательно:
A=y2-y1
B=x1-x2
C=(x2-x1)y1-(y2-y1)x1

Re: Уравнение прямой, проходящей через 2 точки

СообщениеДобавлено: 02.03.2010 (Вт) 9:23
alibek
Мне кажется, автор нарушил правила форума, сказав при регистрации, что ему больше 13 лет.

Re: Уравнение прямой, проходящей через 2 точки

СообщениеДобавлено: 02.03.2010 (Вт) 9:43
Денис
alibek писал(а):Мне кажется, автор нарушил правила форума, сказав при регистрации, что ему больше 13 лет.

Суть в том, что человеку может быть хоть сорок лет биологически, а в душе 13. Это-то и страшно.
Однако, знание математики не делает человека взрослым.
_________________

Что-то я подзабыл, не могу разобраться:

уравнение прямой проходящей через 2 точки:
Математическая формула: \frac{(y-y1)}{(y2-y1)}=\frac{(x-x1)}{(x2-x1)}
Отсюда получаем:
Математическая формула: (y2-y1)x-(y2-y1)x1-(x2-x1)x+(x2-x1)y1=0
Следовательно:
Математическая формула: A=y2-y1
Математическая формула: B=x2-x1
->
Математическая формула: Ax-Ax1-Bx-By1=0

А это откуда?
Математическая формула: C=(x2-x1)y1-(y2-y1)x1

_________________

Может лучше так?
уравнение прямой проходящей через 2 точки:
Математическая формула: \frac{(y-y_1)}{(y_2-y_1)}=\frac{(x-x_1)}{(x_2-x_1)}
Вид из педивикии:
Математическая формула: (y_1-y_2)x+(x_2-x_1)y+(x_1y_2-x_2y_1)=0
Отсюда:
Математическая формула: A=(y_1-y_2)x
Математическая формула: B=(x_2-x_1)y
Математическая формула: C=(x_1y_2-x_2y_1)

_________________

Однако тут возникает проблема: Для вычисления A и B надо найти точку с координатами (x, y), лежащую на прямой и не совпадающую с концами (x1, y1) и (x2, y2). Если рисовать прямую самостоятельно, то это не проблема, но если рисовать при помощи Line, то такую точку с разгону не найдешь.

Re: Уравнение прямой, проходящей через 2 точки

СообщениеДобавлено: 02.03.2010 (Вт) 11:19
Antonariy
Однако, знание математики не делает человека взрослым.
Как и незнание — ребенком. Однако такое незнание точно не сделает его программистом.

Re: Уравнение прямой, проходящей через 2 точки

СообщениеДобавлено: 02.03.2010 (Вт) 16:02
DreamShark
Спасибо, во всем разобрался.

Re: Уравнение прямой, проходящей через 2 точки

СообщениеДобавлено: 04.03.2010 (Чт) 19:43
Proxy
Я чаще стараюсь делать через t, нахожу это более удобным.
Например есть 2 точки, лежащие на отрезке (который надо построить). Они имеют координаты (X1;Y1) и (X2;Y2) соответственно.
Далее:
X = X1 * t + X2 * (1-t);
Y = Y1 * t + Y2 * (1-t);
Вычисляем X и Y для каждой точки, расчитывая их в цикле, приращивая t от 0 до 1. Шаг необходимо выбрать такой, чтобы для конкретной дляны отрезка точек было достаточно, чтобы покрыть все видимые точки отрезка.

Вообще необходимость вручную строить отрезок - это крайне редкая задача, т.к. для этого чаще всего присутствует необходимый функционал, чем отсутствует. Вот кривые Безье и т.п - действительно готовые решения не так просто найти и готовых решений в API для этого нет.

Re: Уравнение прямой, проходящей через 2 точки

СообщениеДобавлено: 04.03.2010 (Чт) 20:41
Хакер
Proxy писал(а):Вот кривые Безье и т.п - действительно готовые решения не так просто найти и готовых решений в API для этого нет.


Иногда лучше жевать учить матчасть, чем говорить.

Re: Уравнение прямой, проходящей через 2 точки

СообщениеДобавлено: 05.03.2010 (Пт) 15:17
Proxy
Мммм. В Windows 2000 впервые появилось. Не знал, учту.