forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   3д ячейки. (http://forum.boolean.name/showthread.php?t=16645)

Gector 14.04.2012 10:47

3д ячейки.
 
Привет булка. Помоги разобраться в проблеме:
Я создаю банк.
Сетка=CreateBank((Ширина*Длина*Высота)*Кол-во параметров)
Помещаю циклом данные:
Код:

For X=0 To Ширина
      For Z=0 To Длина
            For Y=0 To Высота
                  PokeByte Сетка,Номер_Ячейки*Кол-во параметров,Байт
                  Номер_Ячейки=Номер_Ячейки+1
            Next
      Next
Next

Этот код работает. Ничто не выходит за пределы и запись проходит нормально. Проблема возникает при доступе.
Код:

Адрес = Y+(Z*Высота)*(X*Длина)
Этот код выдает значения выше чем есть. То есть у нас банк 2016, а адрес получается 2300.
На бумаге код почему-то работает))): Например ячейка с координатами Y=2,Z=1,X=2 в сетке 3х3 имеет адрес 11=2+(3*1)*(3*2).
Не пойму в чем тут проблема.
Заранее спасибо).

Nikich 14.04.2012 11:08

Ответ: 3д ячейки.
 
а разница постоянная?

Gector 14.04.2012 11:14

Ответ: 3д ячейки.
 
Цитата:

Сообщение от Nikich (Сообщение 225444)
а разница постоянная?

Практически да. Он постоянно на где-то треть больше.

Nikich 14.04.2012 11:18

Ответ: 3д ячейки.
 
если бы была ровно одна треть можно было бы все легко исправить:
Адрес=твоя_формула
Адрес=адрес-адрес/3
:)

Nikich 14.04.2012 11:23

Ответ: 3д ячейки.
 
кстати
11=2+(3*1)*(3*2).
Неверно, какбэ.

Gector 14.04.2012 11:25

Ответ: 3д ячейки.
 
Oh shi! Точняк!)))
Спасибо).
Видимо пора отдохнуть))).


Часовой пояс GMT +4, время: 18:18.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot