B100D E1F
Scarecrow
offline
Опыт:
4,869Активность: |
Полярки
Народные знатоки джасса, сделайте доброе дело!
В нативах вара3 есть всем известная функция function PolarProjectionBJ takes location source, real dist, real angle returns location
local real x = GetLocationX(source) + dist * Cos(angle * bj_DEGTORAD) local real y = GetLocationY(source) + dist * Sin(angle * bj_DEGTORAD) return Location(x, y) endfunction Вопрос: как её переписать таким образом, чтобы она не создавала утечек в карте? |
06.07.2009, 20:50 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Garret
Недоброе творится
offline
Опыт:
3,893Активность: |
B100D E1F
1. Делай покоординатно, почти всё можно сделать таким способом (формула из приведённой тобой функции) 2. Сделать функцию самому и перемещать MoveLocation 3. Удалять точку после использования |
06.07.2009, 20:55 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
B100D E1F. Дарю полезную ссылку.
http://xgm.guru/forum/showthread.php?t=20224 |
06.07.2009, 21:00 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Чебурашка
offline
Опыт:
5,460Активность: |
обойтись без функции и писать сразу local real x = GetLocationX(source) + dist * Cos(angle * bj_DEGTORAD) local real y = GetLocationY(source) + dist * Sin(angle * bj_DEGTORAD) |
06.07.2009, 21:00 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
B100D E1F
Scarecrow
offline
Опыт:
4,869Активность: |
Цитата:
А просветите как сиё сделать? |
|
06.07.2009, 21:19 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Цитата:
|
|
06.07.2009, 21:28 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
B100D E1F
Scarecrow
offline
Опыт:
4,869Активность: |
Просто специфика такова... Переписываю объёмистую вещь с гуи на джасс, и проще написать ф-цию без утечек и позаменять, чем перелопачивать весь код.
J: прошу без намёков на оскорбление |
06.07.2009, 21:33 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт:
8,394Активность: |
Цитата:
ага его чо то проперло ну а лучше конечно обойтись координатами |
|
07.07.2009, 06:29 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
B100D E1F
Scarecrow
offline
Опыт:
4,869Активность: |
Народ, таки скажите: как удалить точку после использования? |
07.07.2009, 08:54 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт:
8,394Активность: |
call RemoveLocation( loc ) |
07.07.2009, 09:24 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Daemonik
offline
Опыт:
5,084Активность: |
Ну я конечно не знаток. Но раз у тебя координаты точки находятся в локалке(в типе real), то удалять их уже не надо. Вот если бы ты использовал вместо координат точки локацию, то надо было бы писать call RemoveLocation(loc) Поправьте меня если я не то сказал. |
07.07.2009, 09:25 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
Daemonik. Сказал-то все верно, но суть в том, что в полярных координатах локации вообще не уместны. Выше давал ссылку, там все подробно написано с примерами.
|
07.07.2009, 10:10 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|