|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.03.2013, 11:50 | #11 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Sciv, согласен.
Вы абсолютно правы. свой пост я удалил (в тщетной надежде, что его никто не успел увидеть). я сам уже понял, что вектор (в отличие от луча - это ограниченный направленный отрезок А раз он (как и любой отрезок) имеет границы. то, в том случае, когда "морда" попадает на линию, в этом случае можно считать, что "морда" направлена к линии, во всех остальных случаях, когда есть пересечение линии и вектора - "морда" направлена ОТ линии.. |
28.03.2013, 14:26 | #12 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
оу, ребят, прошу прощения. У меня после 9 вечера напрочь пропадает способность нормально формулировать мысли.
Насчет того, что я хотела: я понимаю, что в любом случае вектор пересекает прямую. Только в одном направление идет к прямой, а в другом - от прямой. Вот мое мегахудожество (ось Оу направлена не как в нормальных декартовых, а в компьютерных координатах) и два вектора направления. вектора.png И я хочу каким-то образом узнать, что один из них направлен на Ох, другой - от Ох. (Ox не принципиальна, могут быть другие прямые, заданные двумя точками). А теперь, собственно, для чего мне это нужно. Вполне вероятно (я даже уверена в этом), что я слишком замудрила, и есть более легкие способы, а я изначально пошла не по тому пути. Есть шарик, есть стена. Нужно сделать так, чтоб шарик отскакивал от стены. Шарик движется с какой-то скоростью, поэтому может быть такое, что пропущен тот момент, когда расстояние от центра шарика до стены равно радиусу. Зачастую это расстояние меньше. Я отражаю шарик в другую сторону, он двигается, но следующий просчет функции НеСтолкнулсяЛиШарикСоСтеной проходит в тот момент, когда расстояние все еще меньше радиуса. И функция радостно оповещает, что да, столкнулся. Как я понимаю, мне нужно сделать в этой функции проверку, а идет ли шарик НА стену или ОТ нее, и если ОТ, то пофиг на расстояние от центра от прямой. Я уверена, все знают, как это сделать, ткните меня, пожалуйста, носом. Вот три года назад делала такое, и никаких проблем не было, а сейчас решила вспомнить, так сказать, основы, и чего-то туго они у меня идут.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
|
28.03.2013, 14:32 | #13 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
ну и введите логическую переменную, которая бы принимала true - на стену, false - от стены
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
28.03.2013, 14:42 | #14 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
В вашем случае y-координата вектора все определяет - положительная вектор вниз (к оси X), отрицательная - вверх (от оси Х)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
28.03.2013, 14:53 | #15 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
но я всё равно скажу.. У вас есть расстояние от шарика до стены (да, да, оно меньше радиуса, но это сейчас неважно). Но у Вас есть переменные, которые описывают движение шарика (рискну предположить, что это приращения dx и dy). Передайте их в вашу функцию. Вычислите на какой позиции шарик будет в следущий квант времени (Xn := X + dx; Yn := Y + dy) и просчитайте расстояние от этой позиции до стены. Если оно больше текущего - шарик движется ОТ стены (отлетает), если оно меньше текущего - шарик движется к стене... я всё сказал. |
|
28.03.2013, 14:56 | #16 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
Аватар, в этом случае - да. Но хотелось бы, чтоб не только для этого случая работало, а для любых прямых.
Sciv, это я думала сделать на крайний случай. Уверена, что есть более правильное решение. UPD: Serge_Bliznykov, совсем не глупость. Я этот вариант оставила тоже на крайний случай. Просто я все еще надеюсь, что есть какая-то умная геометрическая формула, которая по вектору направления может определить это самое направление относительно заданной прямой. Но учебники об этом умалчивают
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
Последний раз редактировалось ACE Valery; 28.03.2013 в 14:59. |
28.03.2013, 15:06 | #17 | ||
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Пусть есть точка (x0,y0) и свободный вектор V=(Vx,Vy). Пусть, для определённости, L(x0,y0)>0. Тогда вектор, "приложенный" к точке, направлен к прямой если и только если a*Vx+b*Vy<0; от прямой если и только если a*Vx+b*Vy>0. Равенство этого скалярного произведения нулю означает, что вектор параллелен прямой. При L(x0,y0)<0 всё наоборот. Цитата:
Последний раз редактировалось Abstraction; 28.03.2013 в 15:09. |
||
28.03.2013, 15:52 | #18 | |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
Цитата:
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
|
|
28.03.2013, 16:04 | #19 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Это точка приложения вектора. Т.е. откуда он исходит. В вашем случае любая точка в области, по которой шарик перемещается вне стены
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
28.03.2013, 16:15 | #20 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
Все, поняла, спасибо Но такой способ тоже не прокатывает. Если получилось так, что шарик таки зашел за прямую, то, естественно, вектор снова будет на нее указывать. Что ж, по крайней мере, я поняла, что то, что я хотела сделать, невозможно.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
векторная алгебра | KIRILOW | Помощь студентам | 61 | 31.10.2012 15:45 |
LNK1561 (векторная программа) | finz | Помощь студентам | 6 | 20.05.2011 18:01 |
Векторная графика | AnReykfi | Помощь студентам | 0 | 15.05.2010 14:10 |
векторная графика. квадрат | varelik | Мультимедиа в Delphi | 18 | 07.09.2009 22:25 |
Векторная графика в C++ Builder 6 | Max2114 | C++ Builder | 3 | 19.01.2009 14:56 |