Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Найти уравнение прямой |
Автор: Z_P 25.10.2003, 23:19 |
Помогите написать алгоритм для перевода в прямую, из двух данных точек Y и X, вроде бы формула такая была, а потом как сравнить где лежит определенная точка ниже или выше этой прямой?![]() |
Автор: Fedor 26.10.2003, 08:56 | ||
Помоему, предложение несколько несвязно... что-то я ничего не понял |
Автор: 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 |
брезенхам вам поможет господа ![]() |
Автор: 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 |
Модератор: Оффтоп выделил в отдельную тему... |