![]() |
расчёт нахождения точки на линии
Помагайте сам никогда не додумаюсь,
такая проблема: Допустим есть линия по диаганали у неё есть две точки x xstart и xend, две точки y ystart и yend. есть точка(персонаж),у неё есть x и y. как вычислить ply по plx, находящийся на линии. ---------xe/ye -----------/ ----------/ ------plx/ply --------/ ----xs/ys нужна формула. |
Ответ: расчёт нахождения точки на линии
|
Ответ: расчёт нахождения точки на линии
Вложений: 1
Только убедись что точка СТАРТ находится левее и ниже чем (частный случай - на том же уровне что и [тут надо будет расписать частных случай xe=xs, т.к. полученная пряма не задаётся линейной завимостью с адекватными коэффициентами {деление на ноль}]) точка ЭНД (в противном случае - перекинь значения).
Розовая и зелёные точки проецируются на линию по Х и Y соответственно. |
xs у линии всегда левее чем xe ys допустим тоже всегда ниже чем ye с этим проблем нет.
но я не понял что за переменные XP1,Xp2,yp1,Yp2. impersonalis объясните пожалуйста всё подробнее если не сложно, для чего нужна какая переменная и каждое действие, вычиление K,B и т.д, p.s.: линия может быть и не прямо по диагонали, а например на 30,20 градусов. и зачем нужны XPl1,Xpl2,ypl1,Ypl2 у меня ведь только по одной переменных x y для персонажа. |
Ответ: расчёт нахождения точки на линии
Вложений: 1
Y(x):=K*x+B
уравнение прямой линии под любым углом наклона кроме 90 и 270 градусов (K=бесконечность). Зная две точки мы сперва вычисляем угловой коэффициент К, который является ничем иным как тангенсом угла наклона. Затем смещение относительно оси абсцисс - B. Я так и не понял что ты хочешь сделать с плеером имея две его координаты и произвольную линию? Чтобы он оказался на прямой? Эта задач имеет два решения (при бесконечной прямой и до двух решений при ограниченной): мы можем сохранить текущий x и спроецировать y и наоброт. |
Ответ: расчёт нахождения точки на линии
Если нужно проверить - лежит ли точка на прямой, от достаточно чекнуть тождество.
Ypl==K*Xpl+B или с учётом дискретности, вносимой вычислительной частью и разрядной сеткой |Ypl-K*Xpl-B|<=Eps где Eps погрешность |
Ответ: расчёт нахождения точки на линии
а что это за переменная x,y?
как вычислить xp1,xp2,yp1,yp2? |
Ответ: расчёт нахождения точки на линии
K=(ye-ys)/(xe-xs)
B=ye-K*xe if |Ypl-K*Xpl-B|<=Eps плеере на прямой с точность в Eps else хрен там! endif |
Ответ: расчёт нахождения точки на линии
mustaeed ты разобрался?
|
Ответ: расчёт нахождения точки на линии
У меня где-то был записан векторный метод определения
попадает ли точка в заданный выпуклый N-угольник. Если надо, могу откопать. |
Ответ: расчёт нахождения точки на линии
если однозначно ясно что искомая точка лежит на прямой и нужно узнать какой путь она прошла от начала отрезка, distance = sqrt(dx*dx+dy*dy) , dx=x2-x1 ...
|
Ответ: расчёт нахождения точки на линии
вот вернулся к программингу пробовал понять но так и не понял,
потом просто ввёл этот код, но он работает не правильно. вообщем как мне высчитать точку Y у линии на определённой X? извините но мне ничего в голову не приходит в геометрии я плох. |
Ответ: расчёт нахождения точки на линии
вообщем как мне высчитать точку Y у линии на определённой X?
Прямая линия - есть график функции y = k*x+b Твоя задача - по конечным точкам высчитать коэффициент k и сдвиг b А затем исходя из функции y = k*x+b подставив х найдёшь у |
Ответ: расчёт нахождения точки на линии
спасибо К.О. - посмотри начало темы. =\
Вообще ничего не буду отвечать, пздц просто. |
Ответ: расчёт нахождения точки на линии
Вложений: 1
незнаю он почемуто высчитывает Y по последней X у линии а не по тому X который я задаю, вот посмотри исходник.
|
Ответ: расчёт нахождения точки на линии
impersonalis почему ппздц просто?
я проверил формулы из 8 и 13 поста, результат один он находит y от xe. |
Ответ: расчёт нахождения точки на линии
mustaeed
может в формулу стоит подставить X, а не XE, чтобы найти Y, а не YE ? |
Ответ: расчёт нахождения точки на линии
логично, как я сам не додумался,
но к сожалению щас попробовал всяко попереставлять pl_x вместо xe, но либо вообще непредсказуемо начинает работать, либо результат тот же выискивает по xe :-D |
Ответ: расчёт нахождения точки на линии
я не знаю в чём у тебя ошибка, может в том что в школу надо ходить было ?
вот рабочая формула, вытекает она из учебника 9 класса, ну не знаю ты должен быть заядлым гуманитарием чтобы этого не понимать (Y-YS)/(YE-YS) = (X-XS)/(XE-XS) отсюда находим Y Y = (X-XS)*(YE-YS)/(XE-XS)+YS проверяем правильна ли формала : XS = YS = 1 задаём начальную точку (1,1) XE = YE = 3 задаём конечную точку (3,3) X = 2 задаём текущий X = 2, логично что Y тоже должен быть 2 находим Y по формуле подставивши числа Y = (2-1)*(3-1)/(3-1)+1 = 1*1+1 = 2 получили правильный результат если мой пост тебе не поможет то может стоит вообще забросить программирование ? |
Ответ: расчёт нахождения точки на линии
браво, какже не поможет формула рабочая, хотя конечно понять мне её не дано. :super:
|
Ответ: расчёт нахождения точки на линии
всё, тема закрыта.
|
Ответ: расчёт нахождения точки на линии
ситуация 3.14
|
Часовой пояс GMT +4, время: 16:02. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot