Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Опять геометрия [C++ Builder, Windows]


Страницы:   1 2

VolanD666 ©   (2005-04-11 14:27:00) 

Привет, программеры. Кто знает, как найти расстояние от точки до ОТРЕЗКА?


XProger   (2005-04-16 03:22:00) [1]

Перпендикуляр, от этого расстояние изменится? ;) Просто в уравнении прямой появистся ещё одна часть (z - z1)/(z2 - z1) Что к чему надеюсь понятно...


Перпендикуляр   (2005-04-16 01:32:00) [2]


> XProger ©   (15.04.05 13:14) [21]
> <<< ПОНЯЛ???

Надо в 3D.


XProger   (2005-04-15 13:14:00) [3]

Перпендикуляр,
Читай внимательно первый ПОСТ!!!
И мой ответ с комментами!

if not((AX + Rast > BX) and (BX + Rast > AX)) then
begin
за пределами отрезка;
Rast := -1; <<< НЕТ ПЕРМЕНДИКУЛЯРА! ПОНЯТНО?
end
else
if Rast = 0 then
на отрезке; <<< ПОНЯЛ???
else
Rast := abs((AM.X*BM.Y - AM.Y*BM.X)/sqrt(Rast));


VolanD666   (2005-04-15 12:36:00) [4]


> Нет. Нужна точка пересечения линии, и перпендикуляра опущенного
> на неё с прямой.

Решаем систему уравнений:
A*x+B*y+C=0
A*(y-y1)-B*(x-x1)=0;
(x1,y1- координаты точки через которую проходит перпендикуляр)


Перпендикуляр   (2005-04-15 01:19:00) [5]


> 2) Составить уравнение перпендикуляра:
>   A*(y-y1)-B*(x-x1)=0;

А что такое x, x1, y, y1 ?
И как их из этого уравнения можно найти 7


> XProger ©   (14.04.05 23:07) [18]
> Перпендикуляр, расстояние это и есть перпендикуляр!

Нет. Нужна точка пересечения линии, и перпендикуляра опущенного на неё с прямой.


> Но для отрезка его просто может не быть!

Тогда надо это указать.


XProger   (2005-04-14 23:07:00) [6]

Перпендикуляр, расстояние это и есть перпендикуляр!
Но для отрезка его просто может не быть!


VolanD666   (2005-04-14 18:32:00) [7]

Я ведь написал:
1) Составить уравнение прямой (для которой нужен перпендикуляр):
  A*x+B*y+C=0
 
  A=(p2.y-p1.y);
  B=-(p2.x-p1.x);
  C=(p2.x-p1.x)*p1.y-(p2.y-p1.y)*p1.x;

  p1,p2- точки через которые проходит прямая.

2) Составить уравнение перпендикуляра:
  A*(y-y1)-B*(x-x1)=0;


Перпендикуляр   (2005-04-14 01:33:00) [8]


> XProger ©   (13.04.05 14:40) [15]
> Расстояние от точки M до отрезка AB

А перпендикуляр ?


XProger   (2005-04-13 14:40:00) [9]

Расстояние от точки M до отрезка AB

var
AM, BM : TPoint;
Rast   : single;
AX, BX : integer;
begin
AM.X := A.X - M.X;
AM.Y := A.Y - M.Y;
BM.X := B.X - M.X;
BM.Y := B.Y - M.Y;
AX := sqr(AM.X) + sqr(AM.Y);
BX := sqr(BM.X) + sqr(BM.Y);
Rast := sqr(B.X - A.X) + sqr(B.Y - A.Y);
if not((AX + Rast > BX) and (BX + Rast > AX)) then
begin
за пределами отрезка;
Rast := -1;
end
else
if Rast = 0 then
 на отрезке;
else
 Rast := abs((AM.X*BM.Y - AM.Y*BM.X)/sqrt(Rast));
end;


Перпендикуляр   (2005-04-13 02:18:00) [10]


> Pa5ha   (12.04.05 20:04) [13]
> Короче. Была у нас аналка (аналитическая геометрия то бишь)
> в первом семестре. Там все это было. Я даже сам удивлялся.
> Так что студенты первокурсники Тебе помогут. А я уже сдал
> и забыл. =)

Вот и я забыл. Ищу того, ко найдёт перпендикуляр из точки на прямую !


Pa5ha   (2005-04-12 20:04:00) [11]

Короче. Была у нас аналка (аналитическая геометрия то бишь) в первом семестре. Там все это было. Я даже сам удивлялся. Так что студенты первокурсники Тебе помогут. А я уже сдал и забыл. =)


VolanD666   (2005-04-12 18:38:00) [12]

Стоп! Я так с этим уравнением не понял (p = a*(1-t) + b*t).
Пусть есть отрезок (x1,y1,x2,y2). И точка p(px1,px2). Тгда как будет выглядеть это уравнение?


VolanD666   (2005-04-12 16:10:00) [13]

Можно найти его формулу:
(y-y1)=(-1/a)*(x-x1);
x1,y1- координаты точки
а- берется из уравнения прямой(y=ax+b)


Перпендикуляр   (2005-04-12 02:43:00) [14]

Скажите, а по какой формуле находится перпендикулят точки на отрезок ? В 3D. Желательно в GLScene ?


VolanD666   (2005-04-11 19:00:00) [15]


> p - точка, лежащаю внутри отрезка

Тогда, как понять p = a*(1-t) + b*t;


Sapersky   (2005-04-11 18:33:00) [16]

На будущее -

http://www.geometryalgorithms.com/algorithm_archive.htm


VolanD666   (2005-04-11 18:18:00) [17]

Ага, спасибо :-)


A22   (2005-04-11 16:50:00) [18]

блин, a и b - концы отрезка, t - коэффициент. очепятался в самом начале, извиняюсь


A22   (2005-04-11 16:49:00) [19]

p = a*(1-t) + b*t
a & t - концы отрезка, p - точка, лежащаю внутри отрезка при t [0,1]. подставляешь значения, считаешь t. если < 0 или > 1 - значит вышли за границы отрезка. соотв. если < 0 - бери за ближайшую точку a, если > 1 - b, иначе - p. а расстоянием от твоей начальной точки P до отрезка будет длина вектора P-P'
(где P' как раз a,b или p)


VolanD666   (2005-04-11 16:11:00) [20]

А как узнать, вне отрезка или нет?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо