Вниз
Скачать: CL | DM;

Геометрия   Найти похожие ветки 

← →
Nick-From ©   (2004-04-05 11:01) [0]

Есть две точки с координатами (X1, Y1) и (X2, Y2) через которые проходит воображаемя прямая. Есть еще набор точек с их координатами. Как проще всего выяснить положение точек по отношению к прямой (точка лежит ниже прямой, на прямой, выше прямой)?
Я не помню.


← →
VMcL ©   (2004-04-05 11:30) [1]

>>Nick-From ©  (05.04.04 11:01)

По двум точкам составить уравнение прямой вида f(x, y) = 0. Подставляя любую точку в f(x, y) и анализируя знак результата, можно решить твою задачу.


← →
Nikolay M. ©   (2004-04-05 11:31) [2]

Вывести уравнение прямой y = k*x + b из условия
(x - X1) / (X2 - X1) = (y - Y1) / (Y2 - Y1)
Для любой точки (Xn, Yn) из набора считаешь y = k*Xn + b. Если y < Yn, значит точка лежит выше прямой.


← →
Vitaly ©   (2004-04-05 11:41) [3]

скалярное произведение равно 0


← →
Nick-From ©   (2004-04-05 11:54) [4]

всем tnx :)

2 Vitaly ©   (05.04.04 11:41) [3]
> скалярное произведение равно 0

Чье произведение и когда равно 0?


← →
Vitaly ©   (2004-04-05 11:56) [5]

есть три точки - то бишь два вектора
они лежат на одной прямой если их
скалярное произведение равно 0


← →
Думкин ©   (2004-04-05 12:02) [6]

> Vitaly ©   (05.04.04 11:56) [5]

cos0=0?!!


← →
VMcL ©   (2004-04-05 12:10) [7]

>>Nick-From ©  (05.04.04 11:01)

Подробно. Возьмем уравнение прямой в виде f(x, y) = x + ay + b = 0.

Тогда по двум точкам (x1, y1) и (x2, y2), решая систему уравнений
{ x1 + a*y1 + b = 0,
{ x2 + a*y2 + b = 0,
например, по правилу Крамера, имеем:

a = (x2 - x1) / (y1 - y2)
b = (x1*y2 - x2*y1) / (y1 - y2).

Далее, подставляя координаты точек в f(x, y), определяем относительное местоположение:
f(Xi, Yi) > 0 => выше прямой,
f(Xi, Yi) = 0 => на прямой прямой,
f(Xi, Yi) < 0 => ниже прямой.


← →
VMcL ©   (2004-04-05 12:11) [8]

>>VMcL ©  (05.04.04 12:10) [7]

Oops. >>f(Xi, Yi) = 0 => на прямой,<<  :)


← →
Vitaly ©   (2004-04-05 12:35) [9]

> Думкин ©   (05.04.04 12:02) [6]

:)


← →
Verg ©   (2004-04-05 12:51) [10]

Чтобы просто узнать как соотносится точка с прямой, достаточно произвести такую оценку:

Пусть A1 и A2 - это точки, через которые проходит прямая
A:=A2.Y-A1.Y;
B:=A1.X-A2.X;
C:= -A*A1.X - B*A1.Y;

Тогда знак выражения A*FromPoint.X + B*FromPoint.Y + C даст полжение точки FromPoint относительно этой прямой


← →
VMcL ©   (2004-04-05 13:25) [11]

>>Verg ©  (05.04.04 12:51) [10]

[10] vs [7] - те же яйца, вид сбоку :)


← →
Verg ©   (2004-04-05 13:54) [12]


> VMcL ©   (05.04.04 13:25) [11]
> >>Verg ©  (05.04.04 12:51) [10]
>
> [10] vs [7] - те же яйца, вид сбоку :)


Лишний их десяток никогда не помешает :)


← →
Nick-From ©   (2004-04-05 13:57) [13]

2 VMcL © (05.04.04 12:10) [7]
спасибо :)

спасибо всем - я все понял :)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.02 c
3-1080226630
Balkon
2004-03-25 17:57
2004.04.25
Фильтрация по вхождению заданных символов в любое место строки.


3-1080386347
TGrey
2004-03-27 14:19
2004.04.25
Как убрать диалог ввода пароля при подключении к Access?


4-1077406924
OverSet
2004-02-22 02:42
2004.04.25
Перемещение заголовка окна


7-1077457486
HydraMarat
2004-02-22 16:44
2004.04.25
Распознавание текста


1-1081178468
Максим
2004-04-05 19:21
2004.04.25
Прозрачная кнопка




   Наверх