VC三维例程Word文档下载推荐.docx
- 文档编号:20750140
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:28
- 大小:1.91MB
VC三维例程Word文档下载推荐.docx
《VC三维例程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《VC三维例程Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
沿X轴正方向、反方向运动;
(3)上下飞行。
沿Y轴正方向、反方向运动;
(4)场景旋转。
分别沿X、Y、Z坐标轴旋转;
3)驾驶模式中应支持的功能有:
(1)显示即时运动信息;
(2)自动行走;
(3)自动行走过程中,手动左右转弯;
3、基本思路
主要思路如下:
(1)小组讨论,建立什么样的场景,发挥想象力、创造力,创意出虚拟场景方案;
(2)针对上述虚拟场景方案,建模人员实施建模;
(3)将所建模型导出为3DS文件;
(4)利用相关软件察看文件内容,熟悉场景中的对象名称等内容;
(5)导入3DS文件内容,在项目中显示其中的虚拟场景;
(6)实现对场景的漫游。
4、场景建模
场景建模的平台主要有两种:
一种是3DSMAX,用于景物的实体建模;
一种是Photoshop,主要用来设计景物中的纹理贴图,达到真实性的效果。
5、导出模型
主要利用3DSMAX的导出功能,把所建模型输出为3DS文件。
图一导出文件
图二导出文件对话框
把得到的模型文件拷贝到项目的适当位置,如:
图三项目文档结构图示例
6、建立编程项目环境
(1)建立一个单文档视项目,定好存放位置;
(2)定制支持OpenGL环境的资源;
(建立步骤详见平时实验及讲稿)。
7、利用第三方软件观察3DS文件中的模型
主要是利用RightHemisphere公司生产的DeepExploration软件来观察上面导出的3DS模型。
操作
8、操作3DS模型
在项目中导入3DS文件环境的搭建、从3DS文件中加载模型、显示模型、模型驱动的方法见实验示例。
课题二:
《基于WinSock的信息传输程序的设计》
在WindowsSocket的原理的基础上,剖析QQ聊天程序的基本功能,设计即时通信的客户机和服务器程序,能够点对点传输文本及图像信息,
1)服务器端
(1)接收来自客户机的登录请求,在文件或数据库中记录客户机的登录网络信息。
这些信息包括:
用户标识、IP地址等。
(2)接收来自客户机的退出请求,在文件或数据库中删除客户机的登录记录。
(3)接收客户机的“取得所有用户信息”的请求,并把所有用户的信息发送给客
户机。
1)客户端
(1)把客户机的信息登录到服务器。
这些信息包括:
(2)请求服务器上的所有用户信息(用户标识、IP地址),并读取到客户机本地,
作为点对点通信的基础。
(3)选择某一用户,进行点对点通信(不再通过服务器)。
通信的内容有两种开式:
文本信息、图像文件;
主要程序代码如下:
#include"
stdafx.h"
Ex_MFC_OpenGL.h"
MainFrm.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#endif
IMPLEMENT_DYNCREATE(CMainFrame,CFrameWndEx)
constintiMaxUserToolbars=10;
constUINTuiFirstUserToolBarId=AFX_IDW_CONTROLBAR_FIRST+40;
constUINTuiLastUserToolBarId=uiFirstUserToolBarId+iMaxUserToolbars-1;
BEGIN_MESSAGE_MAP(CMainFrame,CFrameWndEx)
ON_WM_CREATE()
ON_COMMAND(ID_VIEW_CUSTOMIZE,&
CMainFrame:
:
OnViewCustomize)
ON_REGISTERED_MESSAGE(AFX_WM_CREATETOOLBAR,&
OnToolbarCreateNew)
ON_COMMAND_RANGE(ID_VIEW_APPLOOK_WIN_2000,ID_VIEW_APPLOOK_WINDOWS_7,&
OnApplicationLook)
ON_UPDATE_COMMAND_UI_RANGE(ID_VIEW_APPLOOK_WIN_2000,ID_VIEW_APPLOOK_WINDOWS_7,&
OnUpdateApplicationLook)
END_MESSAGE_MAP()
staticUINTindicators[]=
{
ID_SEPARATOR,ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
CMainFrame()
theApp.m_nAppLook=theApp.GetInt(_T("
ApplicationLook"
),ID_VIEW_APPLOOK_VS_2008);
}
~CMainFrame()
intCMainFrame:
OnCreate(LPCREATESTRUCTlpCreateStruct)
if(CFrameWndEx:
OnCreate(lpCreateStruct)==-1)
return-1;
BOOLbNameValid;
OnApplicationLook(theApp.m_nAppLook);
if(!
m_wndMenuBar.Create(this))
{
TRACE0("
未能创建菜单栏"
);
}
m_wndMenuBar.SetPaneStyle(m_wndMenuBar.GetPaneStyle()|CBRS_SIZE_DYNAMIC|CBRS_TOOLTIPS|CBRS_FLYBY);
CMFCPopupMenu:
SetForceMenuFocus(FALSE);
m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||
!
m_wndToolBar.LoadToolBar(theApp.m_bHiColorIcons?
IDR_MAINFRAME_256:
IDR_MAINFRAME))
未能创建工具栏"
CStringstrToolBarName;
bNameValid=strToolBarName.LoadString(IDS_TOOLBAR_STANDARD);
ASSERT(bNameValid);
m_wndToolBar.SetWindowText(strToolBarName);
CStringstrCustomize;
bNameValid=strCustomize.LoadString(IDS_TOOLBAR_CUSTOMIZE);
m_wndToolBar.EnableCustomizeButton(TRUE,ID_VIEW_CUSTOMIZE,strCustomize);
InitUserToolbars(NULL,uiFirstUserToolBarId,uiLastUserToolBarId);
m_wndStatusBar.Create(this))
未能创建状态栏"
m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT));
m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockPane(&
m_wndMenuBar);
m_wndToolBar);
CDockingManager:
SetDockingMode(DT_SMART);
EnableAutoHidePanes(CBRS_ALIGN_ANY);
EnablePaneMenu(TRUE,ID_VIEW_CUSTOMIZE,strCustomize,ID_VIEW_TOOLBAR);
CMFCToolBar:
EnableQuickCustomization();
if(CMFCToolBar:
GetUserImages()==NULL)
if(m_UserImages.Load(_T("
.\\UserImages.bmp"
)))
{
CMFCToolBar:
SetUserImages(&
m_UserImages);
}
CList<
UINT,UINT>
lstBasicCommands;
lstBasicCommands.AddTail(ID_FILE_NEW);
lstBasicCommands.AddTail(ID_FILE_OPEN);
lstBasicCommands.AddTail(ID_FILE_SAVE);
lstBasicCommands.AddTail(ID_FILE_PRINT);
lstBasicCommands.AddTail(ID_APP_EXIT);
lstBasicCommands.AddTail(ID_EDIT_CUT);
lstBasicCommands.AddTail(ID_EDIT_PASTE);
lstBasicCommands.AddTail(ID_EDIT_UNDO);
lstBasicCommands.AddTail(ID_APP_ABOUT);
lstBasicCommands.AddTail(ID_VIEW_STATUS_BAR);
lstBasicCommands.AddTail(ID_VIEW_TOOLBAR);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2003);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_VS_2005);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLUE);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_SILVER);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLACK);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_AQUA);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_WINDOWS_7);
SetBasicCommands(lstBasicCommands);
return0;
BOOLCMainFrame:
PreCreateWindow(CREATESTRUCT&
cs)
if(!
CFrameWndEx:
PreCreateWindow(cs))
returnFALSE;
returnTRUE;
voidCMainFrame:
AssertValid()const
CFrameWndEx:
AssertValid();
Dump(CDumpContext&
dc)const
Dump(dc);
#endif
OnViewCustomize()
CMFCToolBarsCustomizeDialog*pDlgCust=newCMFCToolBarsCustomizeDialog(this,TRUEpDlgCust->
EnableUserDefinedToolbars();
pDlgCust->
Create();
LRESULTCMainFrame:
OnToolbarCreateNew(WPARAMwp,LPARAMlp)
LRESULTlres=CFrameWndEx:
OnToolbarCreateNew(wp,lp);
if(lres==0)
return0;
CMFCToolBar*pUserToolbar=(CMFCToolBar*)lres;
ASSERT_VALID(pUserToolbar);
pUserToolbar->
EnableCustomizeButton(TRUE,ID_VIEW_CUSTOMIZE,strCustomize);
returnlres;
OnApplicationLook(UINTid)
CWaitCursorwait;
theApp.m_nAppLook=id;
switch(theApp.m_nAppLook)
caseID_VIEW_APPLOOK_WIN_2000:
CMFCVisualManager:
SetDefaultManager(RUNTIME_CLASS(CMFCVisualManager));
break;
caseID_VIEW_APPLOOK_OFF_XP:
SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOfficeXP));
caseID_VIEW_APPLOOK_WIN_XP:
CMFCVisualManagerWindows:
m_b3DTabsXPTheme=TRUE;
SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
caseID_VIEW_APPLOOK_OFF_2003:
SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2003));
CDockingManager:
caseID_VIEW_APPLOOK_VS_2005:
SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerVS2005));
caseID_VIEW_APPLOOK_VS_2008:
SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerVS2008));
caseID_VIEW_APPLOOK_WINDOWS_7:
SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows7));
default:
switch(theApp.m_nAppLook)
caseID_VIEW_APPLOOK_OFF_2007_BLUE:
CMFCVisualManagerOffice2007:
SetStyle(CMFCVisualManagerOffice2007:
Office2007_LunaBlue);
break;
caseID_VIEW_APPLOOK_OFF_2007_BLACK:
Office2007_ObsidianBlack);
caseID_VIEW_APPLOOK_OFF_2007_SILVER:
Office2007_Silver);
caseID_VIEW_APPLOOK_OFF_2007_AQUA:
Office2007_Aqua);
SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007));
RedrawWindow(NULL,NULL,RDW_ALLCHILDREN|RDW_INVALIDATE|RDW_UPDATENOW|RDW_FRAME|RDW_ERASE);
theApp.WriteInt(_T("
),theApp.m_nAppLook);
OnUpdateApplicationLook(CCmdUI*pCmdUI)
pCmdUI->
SetRadio(theApp.m_nAppLook==pCmdUI->
m_nID);
LoadFrame(UINTnIDResource,DWORDdwDefaultStyle,CWnd*pParentWnd,CCreateContext*pContext)
LoadFrame(nIDResource,dwDefaultStyle,pParentWnd,pContext))
for(inti=0;
i<
iMaxUserToolbars;
i++)
CMFCToolBar*pUserToolbar=GetUserToolBarByIndex(i);
if(pUserToolbar!
=NULL)
pUserToolbar->
客户端:
Msg.h"
CMsg:
CMsg(CString&
preMsg)
m_strText=preMsg;
voidCMsg:
Init()
m_strText=_T("
"
CStringCMsg:
WhatType()
CStringpreType("
NULLMSG"
CStringwho;
CStringtoWho;
CStringmsgItem;
intbegin=0;
intend=0;
m_strText="
NOMALMSG_hupeng_jianghe_
if(m_strText.SpanIncluding("
NOMALMSG"
)=="
)
end=m_strText.Find("
_"
preType=m_strText.Mid(begin,end-begin);
begin=end+1;
begin);
m_nomalMsg.who=m_strText.Mid(begin,end-begin);
begi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 三维 例程