|
|
|
| Суть: есть матрица 20*20 и есть область с координатами. Начало координат - центр области, координа ты по x и y в диапазоне от -1 до 1, направлены как положено (у снизу вверх, х влева направо).
Задача: перевести координаты в системе в индексы матрицы, если [0.05;0.05] - это [0;0] и тд.
Сам пробовал, но что-то не получается...Помогите, буду очень благодарен! | |
|
|
|
|
|
|
|
для: Фитч
(07.03.2007 в 19:50)
| | Ну? Если матрица 20x20 и диапазон [1;-1], то значит длина=ширина одной клетки=1/10=0,1
Делите координаты на 0.1, учитывая знаки, с округлением и получаете клетку!
P.S.: вы же сказали "Начало координат - центр области", если так, то [0.05;0.05] - это не [0;0], а [11;11] ;-))) (но это если сами клетки нумеруются как и положено слева сверху. Может у Вас клетки тоже нумеруются из центра?)
P.P.S: надеюсь сильно не запудрил мозги ;-D | |
|
|
|
|
|
|
|
для: ddhvvn
(07.03.2007 в 20:31)
| | > P.P.S: надеюсь сильно не запудрил мозги ;-D
Нет, наоборот, указали на мои же ошибки! Прошу прощения - после долгих раздумий о матрице голова не варит)))
> Делите координаты на 0.1, учитывая знаки, с округлением и получаете клетку!
Вот до этого я и додумался, а точную формулу что-то вывести не получается! Думал, что с этим-то мне и помогут.
ЗЫ:
Про [0.05;0.05] - это вы правы, я не то написал(( | |
|
|
|
|
|
|
|
для: Фитч
(08.03.2007 в 18:20)
| | Я бы Вам подсказал формулу, но что-то подзабросил c++ и за 2 месяца забыл как наз-ся функция округления с уменьшением (если она вообще есть) ;-) | |
|
|
|
|
|
|
|
для: ddhvvn
(08.03.2007 в 18:29)
| | она называется floor()
А еще есть ceil() - с увеличением
Если вам не удобен с++ - напишите, если хотите, на другом языке - тут математический вопрос | |
|
|
|
|
|
|
|
для: Фитч
(08.03.2007 в 19:44)
| | Короче принцип такой:
- ячейка по горизонтали = floor(координата x / 0,1) - 10
- ячейка по вертикали = floor(координата y / 0,1) - 10
Тебе это нужно было? | |
|
|
|
|
|
|
|
для: ddhvvn
(08.03.2007 в 20:16)
| | +10
в смысле - не минус, а плюс десять. | |
|
|
|
|
|
|
|
для: Trianon
(09.03.2007 в 09:30)
| | Да, большое спасибо! | |
|
|
|
|
|
|
|
для: Trianon
(09.03.2007 в 09:30)
| | Ошибся... | |
|
|
|