Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal

Ответ
 
Опции темы
Старый 11.06.2009, 13:26   #1
mustaeed
Оператор ЭВМ
 
Регистрация: 01.04.2009
Сообщений: 21
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос расчёт нахождения точки на линии

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

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

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

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

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

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

Последний раз редактировалось mustaeed, 11.06.2009 в 13:31.
(Offline)
 
Ответить с цитированием
Старый 11.06.2009, 14:17   #2
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: расчёт нахождения точки на линии

http://forum.boolean.name/forumdisplay.php?f=85
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 11.06.2009, 14:35   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: расчёт нахождения точки на линии

Только убедись что точка СТАРТ находится левее и ниже чем (частный случай - на том же уровне что и [тут надо будет расписать частных случай xe=xs, т.к. полученная пряма не задаётся линейной завимостью с адекватными коэффициентами {деление на ноль}]) точка ЭНД (в противном случае - перекинь значения).
Розовая и зелёные точки проецируются на линию по Х и Y соответственно.
Миниатюры
Нажмите на изображение для увеличения
Название: solve.jpg
Просмотров: 1080
Размер:	22.9 Кб
ID:	6230  
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 11.06.2009, 15:36   #4
mustaeed
Оператор ЭВМ
 
Регистрация: 01.04.2009
Сообщений: 21
Написано 0 полезных сообщений
(для 0 пользователей)
xs у линии всегда левее чем xe ys допустим тоже всегда ниже чем ye с этим проблем нет.
но я не понял что за переменные XP1,Xp2,yp1,Yp2.

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

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

Последний раз редактировалось Magus, 21.06.2009 в 00:45.
(Offline)
 
Ответить с цитированием
Старый 11.06.2009, 15:52   #5
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: расчёт нахождения точки на линии

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

Я так и не понял что ты хочешь сделать с плеером имея две его координаты и произвольную линию? Чтобы он оказался на прямой? Эта задач имеет два решения (при бесконечной прямой и до двух решений при ограниченной): мы можем сохранить текущий x и спроецировать y и наоброт.
Миниатюры
Нажмите на изображение для увеличения
Название: solve2.jpg
Просмотров: 971
Размер:	11.6 Кб
ID:	6231  
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 11.06.2009, 16:29   #6
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: расчёт нахождения точки на линии

Если нужно проверить - лежит ли точка на прямой, от достаточно чекнуть тождество.
Ypl==K*Xpl+B
или с учётом дискретности, вносимой вычислительной частью и разрядной сеткой
|Ypl-K*Xpl-B|<=Eps
где Eps погрешность
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 11.06.2009, 16:48   #7
mustaeed
Оператор ЭВМ
 
Регистрация: 01.04.2009
Сообщений: 21
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: расчёт нахождения точки на линии

а что это за переменная x,y?
как вычислить xp1,xp2,yp1,yp2?
(Offline)
 
Ответить с цитированием
Старый 11.06.2009, 17:11   #8
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: расчёт нахождения точки на линии

K=(ye-ys)/(xe-xs)
B=ye-K*xe

if |Ypl-K*Xpl-B|<=Eps
плеере на прямой с точность в Eps
else
хрен там!
endif
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 13.06.2009, 18:06   #9
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: расчёт нахождения точки на линии

mustaeed ты разобрался?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 20.06.2009, 02:58   #10
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: расчёт нахождения точки на линии

У меня где-то был записан векторный метод определения
попадает ли точка в заданный выпуклый N-угольник.
Если надо, могу откопать.
(Offline)
 
Ответить с цитированием
Старый 20.06.2009, 17:55   #11
abcdef
Знающий
 
Регистрация: 16.09.2008
Сообщений: 299
Написано 71 полезных сообщений
(для 123 пользователей)
Ответ: расчёт нахождения точки на линии

если однозначно ясно что искомая точка лежит на прямой и нужно узнать какой путь она прошла от начала отрезка, distance = sqrt(dx*dx+dy*dy) , dx=x2-x1 ...
(Offline)
 
Ответить с цитированием
Старый 12.07.2009, 20:11   #12
mustaeed
Оператор ЭВМ
 
Регистрация: 01.04.2009
Сообщений: 21
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: расчёт нахождения точки на линии

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

вообщем как мне высчитать точку Y у линии на определённой X?
извините но мне ничего в голову не приходит в геометрии я плох.
(Offline)
 
Ответить с цитированием
Старый 12.07.2009, 20:13   #13
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: расчёт нахождения точки на линии

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

Прямая линия - есть график функции y = k*x+b
Твоя задача - по конечным точкам высчитать коэффициент k и сдвиг b
А затем исходя из функции y = k*x+b подставив х найдёшь у
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 12.07.2009, 20:32   #14
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: расчёт нахождения точки на линии

спасибо К.О. - посмотри начало темы. =\
Вообще ничего не буду отвечать, пздц просто.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 12.07.2009, 21:17   #15
mustaeed
Оператор ЭВМ
 
Регистрация: 01.04.2009
Сообщений: 21
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: расчёт нахождения точки на линии

незнаю он почемуто высчитывает Y по последней X у линии а не по тому X который я задаю, вот посмотри исходник.
Вложения
Тип файла: zip 1.zip (10.9 Кб, 472 просмотров)
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка нахождения точки в прямоугольнике tormoz Алгоритмика 8 20.11.2007 21:41
Толщина линий Bruteo Основной форум 3 17.07.2007 06:32
Формула, нахождения пересечения прямых линий, и их точки пересечения. moka Алгоритмика 3 01.05.2007 00:36


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com