Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Найти уравнение прямой


Автор: Z_P 25.10.2003, 23:19
Помогите написать алгоритм для перевода в прямую, из двух данных точек Y и X, вроде бы формула такая была, а потом как сравнить где лежит определенная точка ниже или выше этой прямой?
confused.gif

Автор: Fedor 26.10.2003, 08:56
Цитата
Помогите написать алгоритм для перевода в прямую, из двух данных точек Y и X


Помоему, предложение несколько несвязно... что-то я ничего не понял

Автор: December 26.10.2003, 11:04
Z_P Если на плоскости, то:
y=ax+b
x=(y2-y1)/(x2-x1)
b находишь при уже известном х из какой-нибудь точки.

Сравнение выше/ниже прямой точка: подставляешь х точки в уравнение, сравниваешь у из уравнения и у точки.

Это нужно было?

Автор: Z_P 26.10.2003, 12:07
December так в общем-то, на плоскости надо, даны две точки (x1,y1), (x2,y2)

так а, b я чето не совсем понял как его из X получить?

Автор: December 26.10.2003, 14:37
Из y=a*х+b
b=y1-a*х1
или
b=у2-а*х2

Автор: oleg1973 26.10.2003, 20:39
брезенхам вам поможет господа smile.gif

Автор: HalkaR 26.10.2003, 22:45
oleg1973, Брезенхем конечно чел хороший,но кажется сейчас существуют более быстрые алгоритмы?

Автор: frost 2.11.2003, 21:00
АГ. Очхен просто. А как должно выглядеть уравнение?

Так:

(x0 - x) / a = (y0 - y) / b - тут (x0, y0) - точка на прямой, а (a, b) - направляющий вектор (a и b могут быть равны 0),

или так:

Ax + By + C = 0?

Кстати, ур-е с угловым коэффициентом не подходит для прямой, параллельной оси Oy.

Направляющий вектор находится по этим двум точкам, точку на прямой можно взять одну из них.

Автор: HalkaR 2.11.2003, 22:10
http://www.kcn.ru/tat_ru/universitet/infres/kazancev/compgraf.zip Кому интресно - можете почитать, там много полезного. В частности алгоритм Брезенхема с полной реализацией на Паскале.

Автор: GePo 2.11.2003, 22:24
Уравнение прямой: A*x + B*y + C = 0
Есть две точки (x1, y1) и (x2, y2). Вычисляем коэфициенты:
A := y1 - y2
B := x2 - x1
C := x1*y2 - x2*y1

Надо определить, выше или ниже точка M(x0, y0) относительно прямой - считаешь выражение A*x0 + B*y0 + C и по знаку определяешь положение. Опытным путем определишь какой знак - какая полуплоскость. Вроде выше-плюс, ниже - минус. Могу ошибаться

Автор: maxim1000 5.5.2006, 17:17
Модератор:  Оффтоп выделил в отдельную тему... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)