91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2.4MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-11-18
  • 語言: 其他
  • 標簽: C++??OpenGL??

資源簡介

1、構建一個三維場景 可利用glut提供的各種簡單形體來搭建,或者讀入別的模型,并加入光照效果 2、用鍵盤操作一個物體(如一艘飛船,或一個機器人),在三維場景中漫游 視點可以放在物體上,或跟隨物體,利用gluLookAt()函數來實現對視點的控制

資源截圖

代碼片段和文件信息

#include?“Camera.h“

Camera::Camera(glm::vec3?position?glm::vec3?up?float?yaw?float?pitch)
:?Forward(glm::vec3(0.0f?0.0f?-1.0f))
?MovementSpeed(SPEED)
?Mouse_Sensiticity(SENSITIVITY)
?Zoom(ZOOM)
{
this->Position?=?position;
this->World_up?=?up;
this->Yaw?=?yaw;
this->Pitch?=?pitch;
UpdateCameraVectors();
}

Camera::Camera(float?pos_x?float?pos_y?float?pos_z?float?up_x?float?up_y?float?up_z?float?yaw?float?pitch)
:?Forward(glm::vec3(0.0f?0.0f?-1.0f))
?MovementSpeed(SPEED)
?Mouse_Sensiticity(SENSITIVITY)
?Zoom(ZOOM)
{
this->Position?=?glm::vec3(pos_x?pos_y?pos_z);
this->World_up?=?glm::vec3(up_x?up_y?up_z);
this->Yaw?=?yaw;
this->Pitch?=?pitch;
UpdateCameraVectors();
}

Camera::~Camera()
{

}

glm::mat4?Camera::GetViewMatrix()
{
return?glm::lookAt(Position?Position?+?Forward?Up);
}

//對應鍵盤移動事件
void?Camera::ProcessKeyboard(Camera_Movement?direction?float?deltaTime)
{
float?velocity?=?MovementSpeed?*?deltaTime;
if?(direction?==?FORWARD)
Position?+=?Forward?*?velocity;
if?(direction?==?BACKWARD)
Position?-=?Forward?*?velocity;
if?(direction?==?LEFT)
Position?-=?Right?*?velocity;
if?(direction?==?RIGHT)
Position?+=?Right?*?velocity;
}
//對應鼠標移動事件
void?Camera::ProcessMouseMovement(float?xoffset?float?yoffset?GLboolean?constrainPitch)
{
xoffset?*=?Mouse_Sensiticity;
yoffset?*=?Mouse_Sensiticity;

Yaw?+=?xoffset;
Pitch?+=?yoffset;

if?(constrainPitch)
{
if?(Pitch?>?89.0f)
Pitch?=?89.0f;
if?(Pitch? Pitch?=?-89.0f;
}

UpdateCameraVectors();
}
//對應鼠標滾輪事件
void?Camera::ProcessMouseScroll(float?yoffset)
{
if?(Zoom?>=?1.0f?&&?Zoom?<=?45.0f)
Zoom?-=?yoffset;
if?(Zoom?<=?1.0f)
Zoom?=?1.0f;
if?(Zoom?>=?45.0f)
Zoom?=?45.0f;
}


void?Camera::UpdateCameraVectors()
{
glm::vec3?front;
front.x?=?cos(glm::radians(Yaw))?*?cos(glm::radians(Pitch));
front.y?=?sin(glm::radians(Pitch));
front.z?=?sin(glm::radians(Yaw))?*?cos(glm::radians(Pitch));
Forward?=?glm::normalize(front);
Right?=?glm::normalize(glm::cross(Forward?World_up));
Up?=?glm::normalize(glm::cross(Right?Forward));
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????311??2020-04-27?09:01??Readme.md
?????文件?????1624766??2020-05-12?19:58??三維場景漫游.gif
?????目錄???????????0??2020-04-27?08:58??作業6代碼\
?????文件????????2204??2020-03-24?21:56??作業6代碼\camera.cpp
?????文件????????1198??2020-04-27?08:38??作業6代碼\camera.h
?????文件?????????192??2020-03-24?22:19??作業6代碼\CVector3D.h
?????文件????????3171??2020-03-24?22:33??作業6代碼\CViewframe.cpp
?????文件?????????699??2020-03-24?22:39??作業6代碼\CViewframe.h
?????文件???????11020??2020-04-27?08:45??作業6代碼\main.cpp
?????文件???????97792??2020-04-27?08:45??作業6代碼\MyTask06-3DSceneRoaming.exe
?????目錄???????????0??2019-05-06?10:23??作業6附件\
?????文件??????474451??2019-04-29?13:56??作業6附件\作業6-三維場景漫游.pdf
?????文件??????658545??2019-05-06?10:20??作業6附件\作業6-問題討論與思考.pdf

評論

共有 條評論