Я пытаюсь преобразовать трехмерные координаты точки на плоском объекте в двухмерные координаты с учетом ширины и высоты области просмотра.
Я пишу код на C ++.
При просмотре документации 3Ds max я обнаружил функцию «MapViewToScreen»,
Этой функции будет достаточно? Если так, как это реализовать.
Если есть и другие методы, пожалуйста, предложите.
Проверьте ссылку Карта-мир-точка-видовых координат
В основном, что вам нужно сделать, это
//get Transfromation matrix of the plane
Matrix3 tmMatrix = inode->GetObjectTM( GetCOREInterface()->GetTime() );
ViewExp& vpt = GetCOREInterface()->GetActiveViewExp();
GraphicsWindow *gwindow= vpt.getGW();
gwindow->setTransform( Matrix3(1) );
//Your required point, consider only the X and Y part
IPoint3 out; // X and Y from the bottom left corner
Point3 in( your_3d_point * tmMatrix );
gwindow->hTransPoint(&in, &out);