Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 15.11.2006, 19:04   #1
jimon
 
Сообщений: n/a
variable inf

как определить сабж ?

понимаю что я ламер\чайник незнаю всемирных законов транспортации атомов из одной лажи в другую и тд ... просто C++ я учил как едисон - експерементально
поетому от хорошого RTFM по теме не откажусь

нигде в литературе не нашол как определять переменая ушла в бесконечность или нет
но если ее вывести в консоль - то пишется что переменая = бексонечности ....
тоесть определить то можно
но как ?

ps. где то в матрицах портятся углы ... моделька то нормально вращается
а вот дальше углы портятся ... и вообще плохо приравниваются к реальности
 
Ответить с цитированием
Старый 15.11.2006, 19:36   #2
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: variable inf

Как частичное решение можно создать константу с очень большим значением. Потом проверять, если переменная больше этой константы, то infinity.
(Offline)
 
Ответить с цитированием
Старый 16.11.2006, 00:38   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: variable inf

мож через косвенную адресацию проверить состояние памяти?
хотя фигня какая-то... можно создать свой тип данных (не революционный - чисто врпаппер над числовым типом) и перегрузить для него арифметические опреации по типу:
z=a+b
внутри сложения проверяется критичность выполнения данной операции... это нексолько автоматизирует процесс... Но остаётся проблема рациональной оценки возможности переполнения...
Если мне не изменяет память за это отвечал один из регистров камня?

Ещё есть относительно медленный но надёжный вариант (судя по тому, что числа огромные - скорость выполнения уже не критична) - написать враппер для работы с большими числами. В сети есть статьи на эту тему (подобные задачи частенько бываю на олимпиадах): суть, в эмулировании какого угодно числа разрядов, путём хранения значения каждой позиции в массиве (динамическом массиве)
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 16.11.2006, 17:02   #4
jimon
 
Сообщений: n/a
Re: variable inf

трабла в трансформации матрицы physx -> irr
void CCar_PhysX::UpdateIrrCarBody()
{
	NxMat34 pose = GetNxVehicle()->getActor()->getGlobalPose();

	const NxVec3 pos = pose.t;
	const NxMat33 orient = pose.M;
	irr::core::matrix4 irrMat;
	orient.getColumnMajorStride4(&irrMat.M[0]);
	pos.get(&irrMat.M[12]);
	irrMat.M[3] = irrMat.M[7] = irrMat.M[11] = 0.0f;
	irrMat.M[15] = 1.0f;

	irr::core::matrix4 irrMat2;
	irrMat2.setRotationDegrees(irr::core::vector3df(0,-90.0f,0));
	irrMat*=irrMat2;


	car_node->setPosition(irrMat.getTranslation());
	car_node->setRotation(irrMat.getRotationDegrees());
	car_node->updateAbsolutePosition();
}
когда поворот обьекта в physx по оси Y будет приблежен к 0 и 180
то в матрице irrMat поворот по Y почему то обозначается как inf
и из-за етого модель "ищезает" - позицируется не правильно
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com