Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: 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 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
3-1080651328
geg
2004-03-30 16:55
2004.04.25
Генерация номера заказа


4-1077289711
Bless
2004-02-20 18:08
2004.04.25
Toolbar как ресурс


1-1081337143
Макс Шабанов
2004-04-07 15:25
2004.04.25
Как добавить большую таблицу в RichEdit ?


1-1081630305
Klopan
2004-04-11 00:51
2004.04.25
команда net send user message


3-1080647794
Draught
2004-03-30 15:56
2004.04.25
Подключение к БД под SQL сервером