Перевод 2x-Point крана в 3x-Point сцены
Но не знаю как кликать на нарисованную клетку.Надо перевести 2х мерные координаты курсора в 3х мерные кординаты опенгл сцены.И еще чтобы учитывались изменения x,y,z,потому что доска вращается.
Помогите с математикой.Жду советов,вычислений,и примеров.Будет код-доделаю шашки.
Исходник шашек есть на сайте в той же рубрике.
Если интересует Object Picking, то теория
мда,почитал,Нормальный учебник,но там примеры для директс.Если начу использовать эти коды вычислений то мне придется отлаживать прогу дня 3-4.((((
М-да... Спешишь куда?
Цитата:
D3DXVECTOR3 MGM_MakeRay(float FOV,float AspectRatio,WORD MouseX,WORD MouseY,float range)
{
D3DXVECTOR3 LineEnd,CameraSpacePos;
float NMouseX,NMouseY,det;
D3DXMATRIX matView;
NMouseX=1.0 - 2.0*MouseX/640;
NMouseY=1.0 - 2.0*MouseY/480;
//is FOV in radians
CameraSpacePos.y=(NMouseY*tan(FOV/2.0));
CameraSpacePos.x=((-NMouseX/AspectRatio)*tan(FOV/2.0));
LineEnd.x=range*CameraSpacePos.x;
LineEnd.y=range*CameraSpacePos.y;
LineEnd.z=range;
lpDevice->GetTransform(D3DTRANSFORMSTATE_VIEW,(D3DMATRIX *)&matView);
D3DXMatrixInverse(&matView,&det,&matView);
D3DXVec3TransformCoord(&LineEnd,&LineEnd,&matView);
return LineEnd;
}
Пугают выражения типа D3DXVec3TransformCoord,D3DXVECTOR3 MGM_MakeRay
3ддхд6д7) ну на фиг
Цитата: gongex
Представляешь,как буду регулировать формулы,чтобы сработало "тык" на клетку а...4? Никакого терпения не хватит.Тем болле директ читал пару часов,ниче там не знаю
DX3D сам не знаю, но пол-минуты в хелпе по нему дают представление о том, что такое D3DXVECTOR3. Еще 5 секунд, и уже в курсе, что делает D3DXVec3TransformCoord (хотя название и параметры уже дают примерное представление). Ну, а повторить функциональность для собственного типа координат - дело техники.