关于游戏实现第三人称视角的问题? 请教,如何实现:摄像机围绕观察点(即游戏角色)绕任意轴旋转任意角度的算法?十分感谢了~! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 OPENGL?转换投影角度就可以了啊 感谢你的回答,是Direct3D,如果可以的话,给一个具体算法行不? //旋转摄像机void CCamera::RotateCamera(float angle, float X, float Y, float Z){ float ca = (float)cos(angle); float sa = (float)sin(angle); //归一化 CVector3 dir = m_view-m_pos; dir.Normal(); CVector3 dir2; //计算新的X坐标 dir2.x = (ca + (1 -ca)*X)*dir.x; dir2.x += ((1 - ca)*X*Y - Z * sa)*dir.y; dir2.x += ((1 - ca)*X*Z + Y * sa)*dir.z; //计算新的Y坐标 dir2.y = ((1 - ca)*X*Y + Z*sa)*dir.x; dir2.y += (ca + (1 - ca)*Y)*dir.y; dir2.y += ((1-ca)*Y*Z - X*sa)*dir.z; //计算新的Z坐标 dir2.z = ((1 - ca)*X*Z - Y*sa)*dir.x; dir2.z += ((1 - ca)*Y*Z + X*sa)*dir.y; dir2.z += (ca + (1 - ca)*Z)*dir.z; m_view = m_pos +dir2;}上面是我写的旋转摄像机的函数(包括旋转角度,以及旋转轴)。但是摄像机是围绕摄像机的位置旋转。请问如何改为围绕观察点旋转??感谢各位了!~ 在一个对话框的按钮消息函数中如何去调用另一个对话框的方法 系统服务的启动函数中为什么不能初始化socket? clistctrl如何获得我正在编辑的子项的列索引? 一个exe和多个dll通信问题 在主对话框中添加了控件为什么在classwizard中找不到 如何在VC中加入邮件发送,在线等待 为何生成不了ListView() 关于检测串口的信息问题。 如何将ADORecordset数据集从业务层传到客户端(三层结构)? 哪里才有JPEG的开发LIB包呀??????? 关于调试的一个问题 如何用mciSendCommand播放mp3音乐,而不用指定绝对路径
感谢你的回答,是Direct3D,如果可以的话,给一个具体算法行不?
void CCamera::RotateCamera(float angle, float X, float Y, float Z)
{
float ca = (float)cos(angle);
float sa = (float)sin(angle); //归一化
CVector3 dir = m_view-m_pos;
dir.Normal(); CVector3 dir2; //计算新的X坐标
dir2.x = (ca + (1 -ca)*X)*dir.x;
dir2.x += ((1 - ca)*X*Y - Z * sa)*dir.y;
dir2.x += ((1 - ca)*X*Z + Y * sa)*dir.z; //计算新的Y坐标
dir2.y = ((1 - ca)*X*Y + Z*sa)*dir.x;
dir2.y += (ca + (1 - ca)*Y)*dir.y;
dir2.y += ((1-ca)*Y*Z - X*sa)*dir.z; //计算新的Z坐标
dir2.z = ((1 - ca)*X*Z - Y*sa)*dir.x;
dir2.z += ((1 - ca)*Y*Z + X*sa)*dir.y;
dir2.z += (ca + (1 - ca)*Z)*dir.z; m_view = m_pos +dir2;
}上面是我写的旋转摄像机的函数(包括旋转角度,以及旋转轴)。但是摄像机是围绕摄像机的位置旋转。请问如何改为围绕观察点旋转??感谢各位了!~