forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   MidletPascal (http://forum.boolean.name/forumdisplay.php?f=46)
-   -   расчёт нахождения точки на линии (http://forum.boolean.name/showthread.php?t=8466)

mustaeed 11.06.2009 13:26

расчёт нахождения точки на линии
 
Помагайте сам никогда не додумаюсь,
такая проблема:

Допустим есть линия по диаганали у неё есть две точки x
xstart и xend, две точки y
ystart и yend.

есть точка(персонаж),у неё есть x и y.

как вычислить ply по plx, находящийся на линии.

---------xe/ye
-----------/
----------/
------plx/ply
--------/
----xs/ys

нужна формула.

impersonalis 11.06.2009 14:17

Ответ: расчёт нахождения точки на линии
 
http://forum.boolean.name/forumdisplay.php?f=85

impersonalis 11.06.2009 14:35

Ответ: расчёт нахождения точки на линии
 
Вложений: 1
Только убедись что точка СТАРТ находится левее и ниже чем (частный случай - на том же уровне что и [тут надо будет расписать частных случай xe=xs, т.к. полученная пряма не задаётся линейной завимостью с адекватными коэффициентами {деление на ноль}]) точка ЭНД (в противном случае - перекинь значения).
Розовая и зелёные точки проецируются на линию по Х и Y соответственно.

mustaeed 11.06.2009 15:36

xs у линии всегда левее чем xe ys допустим тоже всегда ниже чем ye с этим проблем нет.
но я не понял что за переменные XP1,Xp2,yp1,Yp2.

impersonalis объясните пожалуйста всё подробнее если не сложно,
для чего нужна какая переменная и каждое действие, вычиление K,B и т.д, p.s.: линия может быть и не прямо по диагонали, а например на 30,20 градусов.

и зачем нужны XPl1,Xpl2,ypl1,Ypl2
у меня ведь только по одной переменных x y для персонажа.

impersonalis 11.06.2009 15:52

Ответ: расчёт нахождения точки на линии
 
Вложений: 1
Y(x):=K*x+B
уравнение прямой линии под любым углом наклона кроме 90 и 270 градусов (K=бесконечность).
Зная две точки мы сперва вычисляем угловой коэффициент К, который является ничем иным как тангенсом угла наклона.
Затем смещение относительно оси абсцисс - B.

Я так и не понял что ты хочешь сделать с плеером имея две его координаты и произвольную линию? Чтобы он оказался на прямой? Эта задач имеет два решения (при бесконечной прямой и до двух решений при ограниченной): мы можем сохранить текущий x и спроецировать y и наоброт.

impersonalis 11.06.2009 16:29

Ответ: расчёт нахождения точки на линии
 
Если нужно проверить - лежит ли точка на прямой, от достаточно чекнуть тождество.
Ypl==K*Xpl+B
или с учётом дискретности, вносимой вычислительной частью и разрядной сеткой
|Ypl-K*Xpl-B|<=Eps
где Eps погрешность

mustaeed 11.06.2009 16:48

Ответ: расчёт нахождения точки на линии
 
а что это за переменная x,y?
как вычислить xp1,xp2,yp1,yp2?

impersonalis 11.06.2009 17:11

Ответ: расчёт нахождения точки на линии
 
K=(ye-ys)/(xe-xs)
B=ye-K*xe

if |Ypl-K*Xpl-B|<=Eps
плеере на прямой с точность в Eps
else
хрен там!
endif

impersonalis 13.06.2009 18:06

Ответ: расчёт нахождения точки на линии
 
mustaeed ты разобрался?

odd 20.06.2009 02:58

Ответ: расчёт нахождения точки на линии
 
У меня где-то был записан векторный метод определения
попадает ли точка в заданный выпуклый N-угольник.
Если надо, могу откопать.

abcdef 20.06.2009 17:55

Ответ: расчёт нахождения точки на линии
 
если однозначно ясно что искомая точка лежит на прямой и нужно узнать какой путь она прошла от начала отрезка, distance = sqrt(dx*dx+dy*dy) , dx=x2-x1 ...

mustaeed 12.07.2009 20:11

Ответ: расчёт нахождения точки на линии
 
вот вернулся к программингу пробовал понять но так и не понял,
потом просто ввёл этот код, но он работает не правильно.

вообщем как мне высчитать точку Y у линии на определённой X?
извините но мне ничего в голову не приходит в геометрии я плох.

ABTOMAT 12.07.2009 20:13

Ответ: расчёт нахождения точки на линии
 
вообщем как мне высчитать точку Y у линии на определённой X?

Прямая линия - есть график функции y = k*x+b
Твоя задача - по конечным точкам высчитать коэффициент k и сдвиг b
А затем исходя из функции y = k*x+b подставив х найдёшь у

impersonalis 12.07.2009 20:32

Ответ: расчёт нахождения точки на линии
 
спасибо К.О. - посмотри начало темы. =\
Вообще ничего не буду отвечать, пздц просто.

mustaeed 12.07.2009 21:17

Ответ: расчёт нахождения точки на линии
 
Вложений: 1
незнаю он почемуто высчитывает Y по последней X у линии а не по тому X который я задаю, вот посмотри исходник.


Часовой пояс GMT +4, время: 19:36.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot