Длина массива
Участников: 4
Страница 1 из 1
Длина массива
Хочу спросить, можно ли организовать двумерный массив с различной длиной?
Gena- Сообщения : 182
Дата регистрации : 2008-11-05
Возраст : 30
Откуда : Москва
Re: Длина массива
если я правильн опонимаю, то нужно реализовать динамический массив, проще всего его реализовать в виде списка
Re: Длина массива
Гена, уточни, о чём спрашиваешь. А то правда не очень понятно, что и для чего.
Двумерный массив с различной длиной.
В чём длина должна различаться?
Или она должна меняться, как предположил Тукс?
Массив можно создать любой длины и это потом можно всё изменить.
Двумерный массив с различной длиной.
В чём длина должна различаться?
Или она должна меняться, как предположил Тукс?
Массив можно создать любой длины и это потом можно всё изменить.
Re: Длина массива
Может имелось ввиду ReDim ?
Andrew- Сообщения : 45
Дата регистрации : 2008-09-23
Возраст : 35
Откуда : Киев
Re: Длина массива
Ох. До чего же мне не понравилась эта фраза, когда мне однажды её написали в ответе. Но сдесь она очень даже подходит.
У нас на форуме, телепатов нет!
У нас на форуме, телепатов нет!
Re: Длина массива
Извините, что толком не объяснил(отсутствовал), телепаты в отпуске наверно =).
Я имел ввиду нечто такое:
Dim a1(1 TO 10)
Dim a2(1 TO 3)
Dim a3(1 TO 5664)
...
Dim an(1 to M)
Я просто не знаю как это объяснить словами ).
Я имел ввиду нечто такое:
Dim a1(1 TO 10)
Dim a2(1 TO 3)
Dim a3(1 TO 5664)
...
Dim an(1 to M)
Я просто не знаю как это объяснить словами ).
Gena- Сообщения : 182
Дата регистрации : 2008-11-05
Возраст : 30
Откуда : Москва
Re: Длина массива
То что ты описываеш, очень похоже на массив массивов.
Где a это большой массив а цыфорка это индекс.
Тогда тебе нужен двумерный массив
dim a(1 to n, 1 to 65536)
Но как я понимаю, второй массив нужен тебе с неизвестной длинной.
И вот именно это и усложняет жизнь.
Вижу три варианта.
1. использовать обычный двумерный массив, смерившись с тем, что будет использоваться неразумно память. Зато всё просто.
2. использовать псевдо массивы, ручками захватывая и освобождая память. И получая данные по указателям. Может выйти гораздо быстрее чем обычный массив, но нужно быть более внимательным.
3. Ну и наконец списки, о коих уже не раз упоминалось. Но в отличии от массива, получить элемент списка по его индексу сложнее. Так что см в 2.
А вообще, если не секрет расскажи для чего и куда. Может быть есть другие варианты. Их обычно бывает несколько.
Где a это большой массив а цыфорка это индекс.
Тогда тебе нужен двумерный массив
dim a(1 to n, 1 to 65536)
Но как я понимаю, второй массив нужен тебе с неизвестной длинной.
И вот именно это и усложняет жизнь.
Вижу три варианта.
1. использовать обычный двумерный массив, смерившись с тем, что будет использоваться неразумно память. Зато всё просто.
2. использовать псевдо массивы, ручками захватывая и освобождая память. И получая данные по указателям. Может выйти гораздо быстрее чем обычный массив, но нужно быть более внимательным.
3. Ну и наконец списки, о коих уже не раз упоминалось. Но в отличии от массива, получить элемент списка по его индексу сложнее. Так что см в 2.
А вообще, если не секрет расскажи для чего и куда. Может быть есть другие варианты. Их обычно бывает несколько.
Re: Длина массива
Да вот я Ожл изучаю и не хочу вызывать для каждого треугольника
For
GlBindTexture ...
GlBegin
...
GlEnd
Next
Для этого я научился использовать DrawArrays, НО эта ф-ия не позволяет изменят текущую текстуру(GlBindTexture) во время вырисовки массива.
Поэтому я хочу создать такой "масси массивов" и всё будет выглядеть аккуратно:
For Per = 1 to KolvoTextur
glBindTexture GL_TEXTURE_2D, IdTex(Per)
glVertexPointer(3,GL_FLOAT,8*SizeOf(GLFloat),@Proba(0,0))
glTexCoordPointer(2, GL_FLOAT, 8*SizeOf(GLFloat), @Proba(0,3))
glNormalPointer(GL_FLOAT,8*SizeOf(GLFloat),@Proba(0,5))
glDrawArrays(GL_Triangles, 0, KolvoTreug)
Next
, где Proba -пробный массив
For
GlBindTexture ...
GlBegin
...
GlEnd
Next
Для этого я научился использовать DrawArrays, НО эта ф-ия не позволяет изменят текущую текстуру(GlBindTexture) во время вырисовки массива.
Поэтому я хочу создать такой "масси массивов" и всё будет выглядеть аккуратно:
For Per = 1 to KolvoTextur
glBindTexture GL_TEXTURE_2D, IdTex(Per)
glVertexPointer(3,GL_FLOAT,8*SizeOf(GLFloat),@Proba(0,0))
glTexCoordPointer(2, GL_FLOAT, 8*SizeOf(GLFloat), @Proba(0,3))
glNormalPointer(GL_FLOAT,8*SizeOf(GLFloat),@Proba(0,5))
glDrawArrays(GL_Triangles, 0, KolvoTreug)
Next
, где Proba -пробный массив
Gena- Сообщения : 182
Дата регистрации : 2008-11-05
Возраст : 30
Откуда : Москва
Re: Длина массива
Печально. Но столь погруженный в ojl пример мне почти ни очём не говорит.
Так что прошу прощенья.
Возможно более абстрактный пример или доп коментарии могли бы мне помочь вникнуть в суть, но не факт.
Так что прошу прощенья.
Возможно более абстрактный пример или доп коментарии могли бы мне помочь вникнуть в суть, но не факт.
Re: Длина массива
Меня тут внезапно посетила отличная мысль!
Надо просто создать одномерный массив с координатами точек
{0,0,0,0,0, 1,0,0,1,0, 1,1,0,1,1, ...}
, но так, что полигоны с одинаковой текстурой располагались подряд. Тогда ничего не нужно выдумывать: просто при вызове ф-ии надо указать границы!
Надо просто создать одномерный массив с координатами точек
{0,0,0,0,0, 1,0,0,1,0, 1,1,0,1,1, ...}
, но так, что полигоны с одинаковой текстурой располагались подряд. Тогда ничего не нужно выдумывать: просто при вызове ф-ии надо указать границы!
Gena- Сообщения : 182
Дата регистрации : 2008-11-05
Возраст : 30
Откуда : Москва
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|