Re: Координаты x,y на экране -
Aleks10 - 07.02.2011
я пока пас, занят по уши....
материал для размышления:
http://shatalov.su/math/transformation_1.php
http://shatalov.su/math/transformation_2.php
На данный момент я остановился на попытке создать проекционную плоскость(во "взгляде" камеры)
Ну и список, что нужно(дада, ещё раз):
1. переделать из мировых координат в камерные(учесть градус наклона камеры, и т.д., придётся использовать матрицы...)
2. из пространства камеры спроецировать объект в камерных координатах на проекционную плоскость
3. из проекционной плоскости на экран([-1;1] до [0;640] и [0;480], ну ещё учесть, конечно, формат, 4:3)
Re: Координаты x,y на экране -
xomka - 07.02.2011
да простит меня команда мта, куйман и прочие
Code:
void CalcScreenCoors ( D3DXVECTOR3 *vecWorld, D3DXVECTOR3 *vecScreen )
{
/** C++-ifyed function 0x71DA00, formerly called by CHudSA::CalcScreenCoors **/
// Get the static view matrix as D3DXMATRIX
D3DXMATRIX m ( (float *)(0xB6FA2C) );
// Get the static virtual screen (x,y)-sizes
DWORD *dwLenX = ( DWORD * ) ( 0xC17044 );
DWORD *dwLenY = ( DWORD * ) ( 0xC17048 );
//DWORD *dwLenZ = (DWORD*)(0xC1704C);
//double aspectRatio = (*dwLenX) / (*dwLenY);
// Do a transformation
vecScreen->x = ( vecWorld->z * m._31 ) + ( vecWorld->y * m._21 ) + ( vecWorld->x * m._11 ) + m._41;
vecScreen->y = ( vecWorld->z * m._32 ) + ( vecWorld->y * m._22 ) + ( vecWorld->x * m._12 ) + m._42;
vecScreen->z = ( vecWorld->z * m._33 ) + ( vecWorld->y * m._23 ) + ( vecWorld->x * m._13 ) + m._43;
// Get the correct screen coordinates
double fRecip = (double)1.0 / vecScreen->z; //(vecScreen->z - (*dwLenZ));
vecScreen->x *= (float)( fRecip * (*dwLenX) );
vecScreen->y *= (float)( fRecip * (*dwLenY) );
}
выковыряно из сорцев мта. может чем-нибудь поможет) все права, копирайты и блаблабла мта-тим.
Re: Координаты x,y на экране -
Aleks10 - 07.02.2011
ну и от себя, как обычно

формула подсчёта матрицы камеры:
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
(внизу формула если что. К ней, работа с векторами:
http://gpwiki.org/index.php/MathGem:Vector_Operations )
D3DXMATRIX( FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44 );
состав матрицы...
Re: Координаты x,y на экране -
MX_Master - 07.02.2011
от этого я и добивался, чтобы уже не я рекламил, а вы ((:
Re: Координаты x,y на экране -
OKStyle - 07.02.2011
Теперь весь русский раздел перебанят )
Re: Координаты x,y на экране -
Aleks10 - 07.02.2011
да каво

у хомки уберите слово м** из сообщения, и всё ок будет.
Re: Координаты x,y на экране -
Johnny_Xayc - 07.02.2011
Aleks10,ты сможешь эту функцию сделать,из всех ссылок что ты накидал,я не в чём не разбираюсь,т.к. эта чистая геометрия,тригонометрия и т.д..
Re: Координаты x,y на экране -
MX_Master - 07.02.2011
некоторым не только надо разжевать, но и в рот положить.. проглотить, видимо, тоже должен кто-то другой (:
ну сделайте же кто-нибудь ЭТО
Re: Координаты x,y на экране -
Johnny_Xayc - 07.02.2011
Quote:
Originally Posted by MX_Master
некоторым не только надо разжевать, но и в рот положить.. проглотить, видимо, тоже должен кто-то другой (:
ну сделайте же кто-нибудь ЭТО
|
если ты шариш во всех этих матрицах и т.д.,молодец,но я запустил основы даже геометрии с 6 класса,так и не учил и не могу понять.
Re: Координаты x,y на экране -
MX_Master - 08.02.2011
я просто в этой теме потрещать люблю.. ну а геометрия.. это да, я даже в бильярде от 2 бортов могу мячик в лузу закатить интуитивно
все же дали, формулы есь, функции нэйтивные сморите сами и, если из них мона составить такую функцию, то сделайте. Просто возможен вариант, что этого сделать из нэйтивов нельзя. Вот это и проверьте. А потом уже.. если возможно, то написать не составит труда.
Re: Координаты x,y на экране -
xomka - 08.02.2011
Quote:
Originally Posted by MX_Master
от этого я и добивался, чтобы уже не я рекламил, а вы ((:
|
ах, ты! я подозревал!
двойной агент, я всё-всё батьке куйману расскажу
Re: Координаты x,y на экране -
MX_Master - 08.02.2011
Quote:
Originally Posted by xomka
ах, ты! я подозревал!
двойной агент, я всё-всё батьке куйману расскажу 
|
а ты же скоро почувствуешь разницу, и вместе со мной будешь рекламить (: