![]() |
Ответ: Странное.
Цитата:
Вообще я на примере этого пытался научиться использовать классы и вроде как понял, ну кроме ссылок и двоеточий. Плюс в башке более менее выкристализовался алгоритм как получить такой ландшафт. Сейчас я на каждое смещение генерирую данные для всего ландшафта и все пицот тыщ вершин деформирую и обновляю нормали xUpdateN(), что есть плохо, а последние два пункта так и вовсе прискорбно. Если сочинить алгоритм способный смещать данные на одну строку, то быстродействие вырастет радикально, а разрешение ландшафта в (2048х128)^2 пикселей это ведь круто. |
Ответ: Странное.
Цитата:
кстати если тебя заинтересовала картинка номер два, то подобное без извращений генерируется легко и в течении пары десятков миллисекунд |
Ответ: Странное.
Как лучше?
1) for(int i=0;i<1000000;i++) { double z=somedata[i]; anotherdata[i]=z*0.125*i; } 2) double z; for(int i=0;i<1000000;i++) { z=somedata[i]; anotherdata[i]=z*0.125*i; } 3) double *z; for(int i=0;i<1000000;i++) { z=somedata[i]; anotherdata[i]=z*0.125*i; } Или разницы нет? |
Ответ: Странное.
Между первым и вторым в плане производительности разницы нет (если использовать нормальный компилятор), т.к. на стеке локальные переменные выделяются в области видимости функции. С точки зрения качества кода, то переменную лучше объявлять как можно ближе к тому месту, где она будет использоваться (ну, не превращая все в кашу, конечно).
Между первыми двумя и третим разница существенная (мне кажется, ты таки еще не разобрался в указателях). ЗЫ. Вообще это все можно было бы загуглить. А еще лучше проверить самому. Например, глянуть ассемблерный листинг того, что компилятор наделал. |
Ответ: Странное.
Мне таки с каждым днем кажется, что я в с++ все меньше и меньше понимаю :)
С указателями я более-менее уловил уже что куда, вроде. т.к. такая структура данных у меня обрабатывается нормально и выдает то, что и планировалось изначально. Меня просто интересовал следующий момент: Если у меня есть цикл с хреновой тучей итераций, то в каждой итерации объявлять переменные служащие для хранения промежуточных данных это то же самое, что объявить их до цикла или нет(в плане производительности). |
Ответ: Странное.
Цитата:
|
Ответ: Странное.
Цитата:
int _tmain(int argc, _TCHAR* argv[]) { int somedata[100]; int anotherdata[100]; double* z=(double*)malloc(sizeof(double));//определить размер данных for(int i=0;i<100;i++) { *z=somedata[i];//юзать разыменовывая anotherdata[i]=(*z)*0.125f*i; } return 0; } что бы исключить случайного приведения float к int юзается не так 0.125, а так 0.125f |
Ответ: Странное.
Таки да глупость смозорозил под 3.
Но разыменовывание уж очень какое-то ректальное тайнство из серии: "а я всеравно прав, #$%^@ #$%@^ компилятор!!!" :) чет я не могу вообразить себе ситуацию, когда это потребутся, у меня все-таки в конце цепочки указателей последний указывает на обычную переменную. Цитата:
|
Ответ: Странное.
Цитата:
Код:
class mycl |
Ответ: Странное.
Цитата:
Код:
#include "stdafx.h" |
Ответ: Странное.
Цитата:
Цитата:
|
Ответ: Странное.
Цитата:
|
Ответ: Странное.
Цитата:
xMod(yk,resolution) - зачем использовать хорсовские функции для вычисления модуля? yk % resolution же. по поводу демки - работает. когда генерируется очередной кусок - есть небольшое подвисание. это на i7 с 8 гигабайтами оперативки. МоКа правильно говорит - хочешь писать низкоуровневые вещи - пиши их на низкоуровневом АПИ. тем ни менее - сам алгоритм работает. все нормально, без косяков. |
Ответ: Странное.
то что ты делаешь в коде вообще не понятно, отложи свою программу на пол годика и вернись к ней, ты что нибудь разберешь? Пиши код понятный, как будто ты пишешь его для когото!
double ****strip; как юзать структуры, если ты это хочешь... Код:
struct Vertex |
Ответ: Странное.
Holydel, у меня на всю программу один объект. Командой new я пользуюсь толь ко в конструкторе. А потом как карточный шулер тасую нижние уровни указателей. Если бы я пользовал нью каждый раз вместо перетасовки уровней оно бы каждую секунду по 15 мб памяти отжирало бы, в следствии чего и извращаюсь
:-) Старую версию я бросил и пишу новую в ней подвисаний нет, но она сложней раз в десять структурно, но вроде быстрей и дает над данными много контроля без усилий. К зиме или лету допишу, наверно. Главное что оно кол-во элементов теперь меняет легко и непринужденно это не блитцевский мод. Оно у меня контролирует индексы массивов, что бы они в чужую память не лезли и в минуса не уходили. |
Часовой пояс GMT +4, время: 06:04. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot