Построение прямой по точкам - помогите найти ошибку

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

Bazilius
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 87
Зарегистрирован: 14.11.2003 (Пт) 16:07
Откуда: Пермь

Построение прямой по точкам - помогите найти ошибку

Сообщение Bazilius » 11.10.2005 (Вт) 18:12

Сабж необходим для проверки препятствий на пути пули к цели. В прилагаемой программе есть ошибка - поперемещайте левой и правой кнопками мыши юнита и цель - путь пули иногда будет рисоваться с ошибкой (несовпадение начала и конца пути с юнитом и целью). Помогите пожалуйста отыскать ошибку в процедуре Fire_Check(...), она точно где-то в ней...
У вас нет доступа для просмотра вложений в этом сообщении.
In the grim darkness of the far future, there is only war!

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 11.10.2005 (Вт) 19:53

какой от странный алгоритм.. почему юнит двигается как на картинке 1 а не как на картинке 2?

Изображение

Bazilius
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 87
Зарегистрирован: 14.11.2003 (Пт) 16:07
Откуда: Пермь

Сообщение Bazilius » 11.10.2005 (Вт) 21:13

2nekeda
Не надо прикалываться, не у всех же с математикой хорошо... Просто для меня это проблема и решить ее я немогу... :cry:
In the grim darkness of the far future, there is only war!

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 11.10.2005 (Вт) 22:03

Bazilius
а я прикалываюсь??

т.е. это не так задумано, а так получилось, я правильно понял?

Bazilius
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 87
Зарегистрирован: 14.11.2003 (Пт) 16:07
Откуда: Пермь

Сообщение Bazilius » 12.10.2005 (Ср) 8:37

т.е. это не так задумано, а так получилось, я правильно понял?


Немного не так. Процедуру писал не я, т.к. я уже говорил, что с математикой у меня ужас как плохо.

Смысл в том, что мне необходимо построить прямую линию от точки А до точки Б (тем самым имитируя полет пули), и в момент ее построения проверять, не натыкается ли она на какие-либо препятствия... Данный алгоритм, который, кстати, мне подсказали на этом же форуме, работает, но с ошибками. Иногда точка А и Б соединяются, а иногда нет - линия строится на соседних координатах. А так как я довольно темен в науке, то, соответственно, не могу проанализировать код и найти ошибку...

Помогите, пожалуйста!

2nekeda:
Извини, я тебя неправильно понял...
In the grim darkness of the far future, there is only war!

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 12.10.2005 (Ср) 15:11

вобщем так, алгоритм:

Через две точки на плоскости можно провести прямую и при том только одну.

уравнение прямой: y=k*x+b
подставляем координаты цели и обхекта х, у в уравнение, получаем два:
y1 = k*x1+b
y2 = k*x2+b
отсюда, k=(y1-y) / (x1-x)
отсюда, b=y1 - k*x1

всё. я сделал, всё работает, но для углов от 45 до -45. для остальных надо правильно повернуть прямую, мне лень :)
У вас нет доступа для просмотра вложений в этом сообщении.

Bazilius
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 87
Зарегистрирован: 14.11.2003 (Пт) 16:07
Откуда: Пермь

Сообщение Bazilius » 12.10.2005 (Ср) 19:07

А что значит "правильно повернуть прямую"?
In the grim darkness of the far future, there is only war!

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 12.10.2005 (Ср) 21:32

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

Bazilius
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 87
Зарегистрирован: 14.11.2003 (Пт) 16:07
Откуда: Пермь

Сообщение Bazilius » 17.10.2005 (Пн) 17:53

Уважаемый nekeda!
Извините за настойчивость, но не могли бы вы дописать ваш пример полностью, ввиду моего откровенного непонимания математики за 8 класс. Буду вам очень признателен, если вы реализуете функцию полностью, т.к. я могу путать даже такие понятия как оси абсцисс и ординат... :oops:
In the grim darkness of the far future, there is only war!


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30

    TopList