资源简介
用opengl实现的小车建模和漫游,可以对小车进行操控,适合新手学习
代码片段和文件信息
//原始作者:朱慧君,提供了初步思路及简易的运动方程
//修改者:樊丽,精简并修改现有功能,以匹配AutoPart类
#include “Automotive.h“
myCar::myCar(void)
{
this->normal3f = CVertex(010);
this->position = CVertex(000);
this->ready = 0;
this->rotx = 0;
this->roty = 0;
this->rotz = 0;
this->wheel = NULL;
this->wheel_num = 0;
this->viewangle = 0;
m_carbody = new AutoPartBody(“jeep.3ds“);
}
myCar::~myCar(void)
{
}
bool myCar::CreateDemoCar(void)
{
CVertex * newV;
CVertex * zeroV;
CVertex * defV;//标准精确度
AutoPartWheel * newP;
int ij;
newV = NULL;
newP = NULL;
i=0;
j=0;
/////------------------------------------配置标准值
double d_w1_2 = 1.0;////左右轮距的一半
double d_w2_2 = 1.6;////前后轮距的一半---------轴距一半
zeroV = new CVertex(000);
defV = new CVertex(32320);
////////////////////原点
this->Setpos(* zeroV);
///////////////////方向
this->CreateDemo4Wheel(d_w1_2 d_w2_2);
m_carbody->DrawGL();
this->ready=1;
return true;
}
bool myCar::CreateWheel(int n)
{
if (n>0)
{
if (this->wheel=new AutoPartWheel[n])
{
this->wheel_num = n;
return true;
}
}
return false;
}
bool myCar::Setpos(CVertex p)
{
this->position = p;
return false;
}
bool myCar::SetOri(CVertex ori)
{
this->normal3f = ori;
return false;
}
bool myCar::Rotxyz(double x double y double z)
{
this->rotx += x;
this->roty += y;
this->rotz += z;
while (rotz>360) rotz -= 360;
while (rotz<-360) rotz += 360;
return false;
}
bool myCar::ResetRot(void)
{
this->rotx=0;
this->roty=0;
this->rotz=0;
return false;
}
bool myCar::CreateDemo4Wheel(double dx double dy)
{
CVertex * newV;
CVertex * newV2;
CVertex * zeroV;
CVertex * maxV;
CVertex * defV;//标准精确度
AutoPartWheel * newP;
// double ds2;
int ij;
newV=NULL;
newV2=NULL;
newP=NULL;
i=0;
j=0;
zeroV = new CVertex(000);
maxV = new CVertex(111);
defV = new CVertex(32320);
// ds2=ds/2;
double r=0;
double xx=0;
double h1=0;
double h2=0;
// xx=ds/2 + 0.005;//厚度
// r=dz/2;//三角半径半径
// h1=r/2;
// h2=sqrt(3.0)*h1;
/////-----------------
this->CreateWheel(4);
newV = new CVertex(-dx dy0);
this->wheel[0].Set(* newV);
this->wheel[0].rotable=1;
newV = new CVertex( dx dy0);
this->wheel[1].Set(* newV);
this->wheel[1].rotable=1;
newV = new CVertex(-dx-dy0);
this->wheel[2].Set(* newV);
newV = new CVertex( dx-dy0);
this->wheel[3].Set(* newV);
return false;
}
bool myCar::DrawGL(void)
{
int i=0;
double rott=0;//////////轮子偏向,决定的车身偏向基量
double ws=0;///////////轮子速度决定
if (this->ready == 1)
{
glPushMatrix();
glEnable(GL_DEPTH_TEST); //
glDisable(GL_BLEND); // 关闭混合
////-------------
if (this->viewangle==0)////viewangle世界视角
{
glTranslatef(position.xposition.yposition.z);
if (rotz>360) rotz-=360;
if (rotz<0) rotz+=360;
glRotatef(rotx1.0f0.0f0.0f);
glRotatef(roty0.0f1.0f0.0f);
glRotatef(rot
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-05-04 16:22 OpenGL小车三维模型源码\
文件 24162 2009-08-19 14:29 OpenGL小车三维模型源码\3DS.CPP
文件 3827 2009-08-19 14:39 OpenGL小车三维模型源码\3DS.H
文件 6512 2009-08-19 14:34 OpenGL小车三维模型源码\Automotive.cpp
文件 4790 2009-08-19 14:44 OpenGL小车三维模型源码\Automotive.dsp
文件 543 2009-08-17 15:09 OpenGL小车三维模型源码\Automotive.dsw
文件 323645 2009-08-19 14:42 OpenGL小车三维模型源码\Automotive.exe
文件 1182 2009-08-19 14:26 OpenGL小车三维模型源码\Automotive.h
文件 471464 2009-08-19 14:42 OpenGL小车三维模型源码\Automotive.ilk
文件 123904 2011-03-31 23:11 OpenGL小车三维模型源码\Automotive.ncb
文件 51712 2011-03-31 23:11 OpenGL小车三维模型源码\Automotive.opt
文件 254 2011-03-31 23:04 OpenGL小车三维模型源码\Automotive.plg
文件 809 2009-08-19 14:45 OpenGL小车三维模型源码\Automotive.positions
文件 2026 2009-08-19 14:34 OpenGL小车三维模型源码\AutoPart.cpp
文件 1223 2009-08-19 14:26 OpenGL小车三维模型源码\AutoPart.h
文件 3772 2011-03-20 12:11 OpenGL小车三维模型源码\bitmap.h
目录 0 2012-05-04 16:22 OpenGL小车三维模型源码\Data\
文件 17455 2009-08-15 08:50 OpenGL小车三维模型源码\Data\jeep.3DS
文件 262198 2004-07-19 21:52 OpenGL小车三维模型源码\Data\jeep.bmp
文件 263222 2004-10-26 10:50 OpenGL小车三维模型源码\Data\sand0.BMP
文件 10752 2011-03-18 23:05 OpenGL小车三维模型源码\Data\Thumbs.db
文件 2575 2009-08-15 08:59 OpenGL小车三维模型源码\Data\wheel.3DS
目录 0 2012-05-04 16:22 OpenGL小车三维模型源码\Debug\
文件 85529 2011-03-20 11:55 OpenGL小车三维模型源码\Debug\3DS.obj
文件 299089 2011-03-20 12:11 OpenGL小车三维模型源码\Debug\Automotive.exe
文件 463276 2011-03-20 12:11 OpenGL小车三维模型源码\Debug\Automotive.ilk
文件 45212 2011-03-20 11:55 OpenGL小车三维模型源码\Debug\Automotive.obj
文件 3721528 2011-03-20 12:03 OpenGL小车三维模型源码\Debug\Automotive.pch
文件 648192 2011-03-20 12:11 OpenGL小车三维模型源码\Debug\Automotive.pdb
文件 30431 2011-03-20 11:55 OpenGL小车三维模型源码\Debug\AutoPart.obj
文件 41298 2011-03-20 11:55 OpenGL小车三维模型源码\Debug\MainApp.obj
............此处省略11个文件信息
- 上一篇:虚拟环境漫游系统
- 下一篇:Qt下的自定义图像显示控件
相关资源
- 基于GTP修正的R3DGM建模与可视化方法
- 基于地震属性体的三维探地雷达快速
- VS2012OpenGL配置所需要的全部libdllh文件
- 新西兰高校教学三维考察及镜鉴
- 2018数学建模相关资料与思路
-
利用ob
jectARX实现特征建模 - 粘滞流体阻尼器的冲击实验及建模仿
- Cognos安装介质和手册
- 基于DInSAR技术的矿区地表三维形变监
- 基于多轨道SAR的老采空区地表三维形
- 基于多源SAR影像矿区三维形变场的监
- 基于3D GIS的矿井三维可视化平台
- 猕猴桃近红外光谱MLR建模中的波长选
- 矿井瓦斯涌出量建模预测
- 基于Anylogic的高速公路服务区停车场规
- 溶剂热合成三维开放骨架结构配位聚
- 一种改进的载频交叠重构干涉术在光
- 基于Pro/E纯滚动单圆弧齿轮参数化建模
- 基于Pro/E的渐开线斜齿圆柱齿轮
- 基于Pro/E的直齿圆柱齿轮参数化三维建
- 论变形监测技术的现状与发展趋势
- 车辆减振橡胶材料的本构模型建模方
- Al-Si合金凝固组织的三维模拟及预测
- OA 表单建模
- cesium实现底图和地形动态切换及supe
- 河北省三维矿产资源网络管理系统建
- s形无碳小车三维装配图
- 易语言GDI三维球体源码
- 基于图像三维重建软件visualSFM
- 机载LiDAR支持下的铁路附属建(构)筑
评论
共有 条评论