alexprey
познающий Unity
offline
Опыт:
68,501Активность: |
Пересечение векторов
В общем нужна помощь. Что то у меня криво получается. Надо найти точку пересечения двух прямых, параллельных векторам (vectorA\vectorB) и проходящих через точку (startA\startB). Помоги с формулой, плз
((код cpp
public static Vector2D Cross(Vector2D startA, Vector2D vectorA, Vector2D startB, Vector2D vectorB)
{ Vector2D outVector = new Vector2D(); double k1 = vectorA.y / vectorA.x;
double k2 = vectorB.y / vectorB.x; outVector.x = (startA.y - startB.y - startA.x * k1 + startB.x * k2) / (k1 - k2);
outVector.y = (startA.x + outVector.x) * k1 - startA.y; return outVector; } )) |
06.08.2012, 17:15 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Fakov
Viva la Fa
offline
Опыт:
103,018Активность: |
я ничерта в этом не смыслю, но чисто теретически - циклом проверять координаты каждой прямой - если совпали, значит пересеклись |
06.08.2012, 17:17 | #2
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexprey
познающий Unity
offline
Опыт:
68,501Активность: |
Fakov, по мойму это изврат |
06.08.2012, 17:20 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Fakov
Viva la Fa
offline
Опыт:
103,018Активность: |
а гугл юзал?? |
06.08.2012, 17:30 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexprey
познающий Unity
offline
Опыт:
68,501Активность: |
Fakov, очередной раз вывел сам, но блин первый раз мне не фортануло, ща второй раз попробую
alexprey добавил:
alexprey добавил: во вроде работает |
06.08.2012, 17:53 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
|
06.08.2012, 18:05 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
|
06.08.2012, 18:29 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
|
06.08.2012, 18:42 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
ScorpioT1000, ну float. Сравнение тоже да. Писал давно, тогда не шарил. В версии для стратегии у меня все так и сделано норм как ты написал, взял из спин делюкс. |
06.08.2012, 18:46 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Просто это условие никогда не выполнится, кроме того случая, когда все переданные аргументы строго равны 0
ScorpioT1000 добавил:
Дело не в флоат, а в том что это плавающий тип) ScorpioT1000 добавил:
Вот читайте "внимание" |
06.08.2012, 18:52 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
ScorpioT1000, я знаю, что не во float, я это к тому написал, что флоат быстрее. Ну на практике линии редко когда будут абсолютно параллельны. Выполнится, если вектора одинаковые. |
06.08.2012, 19:13 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
ты кстати еще упарываешься в том, что вернул null вместо православного NaN |
06.08.2012, 19:15 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
ScorpioT1000, какой может быть нан лолка ты, если в ретурн типе объект? |
06.08.2012, 19:17 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
православный вектор нанов
ScorpioT1000 добавил:
<3 |
06.08.2012, 19:19 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
Фигня это и не нужно. Гораздо проще и быстрее проверить на нуль. |
06.08.2012, 19:20 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
часто ты все математические операции проверяешь на нуль? а они тоже возвращают нан) |
06.08.2012, 19:21 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
ScorpioT1000, нет. Короче предлагаю закрыть флейм, это уже алексу решать. |
06.08.2012, 19:29 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexprey
познающий Unity
offline
Опыт:
68,501Активность: |
Doc, я уже вывел (пост №5), функция конечно написана криво, но находит верно. |
06.08.2012, 19:31 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|