需要有opengl,如何配置opengl请自行google;
实现小球之间,小球与地面的碰撞检测,请参考NeHeTutorial的lesson30效果视频请点击:https://www.youtube.com/watch?v=VbTT1CLldOY&feature=youtu.be
2023/10/7 20:34:28 8.94MB opengl 碰撞检测 计算机动画 小球
1
#3D_Garment_Tryon_System3D虚拟试衣系统随着网络的普及和虚拟现实技术的发展,三维虚拟试衣技术已成为国内外学术界普遍关注和研究的重要课题。
三维服装虚拟试衣系统(3DGarmentVirtualTry-OnSystem)主要包括四个部分:用户试衣时的人体识别、姿势检测;
三维虚拟人体模型的构建与匹配,三维虚拟衣物模型的构建,三维衣物在虚拟人体的着装试穿。
目前我们在三维试衣系统相关理论的基础上,从研究三维人体、衣物建模理论出发,结合物理模型、图形处理等方法,实现了以上四个部分,并对其中一些关键技术进行了研究。
人体识别和姿势检测的研究方面,针对精准度要求较高的情况,我们采用N-best人体识别模型,用深度置信神经网络来对模型进行训练,能够检测出图片中任意姿势各个身体部件;
针对实时性要求较高的情况,我们采用SVM模型,可以判断出几种常见的人们试衣时的动作。
三维虚拟人体建模中,首先我们建立集成于软件中的人体模型库,主要是使用专用的三维人体造型软件Poser,将其中人体模型导出为OBJ文件,再根据OBJ文件的存储格式,提取出人体曲面的顶点信息,然后采用稀疏表示和三角剖分技术,利用一个个小三角形来逼近人体各部件的曲面;
而用户人体模型则是根据用户输入的人体信息,查找模型库中相匹配的人体模型并进行一定调整,最后结合检测到的用户姿势来展示用户特定的人体模型。
对于虚拟试衣,通过衣片三角剖分优化、二维到三维的转化、三维衣片虚拟缝合,构建了简单的衣物模型,基于碰撞检测技术,研究并实现了衣物虚拟穿在了人体模型身上的真实样子,如有褶皱、垂悬等等效果。
2023/10/1 8:47:53 44.14MB k'
1
Canvas坦克大战游戏,具备射击,碰撞检测,敌方坦克自动行走等功能
2023/9/7 0:38:03 209KB 坦克大战
1
visualc++DirectX开发3D游戏吃豆人(ORGE3D游戏引擎+AABB碰撞检测+CEGUI)源代码
2023/8/12 8:30:33 26.25MB vc directx 游戏 orge
1
思岚的激光雷达底盘小车stm32程序,拥有超声波,激光雷达,红外,自动回充,碰撞检测的代码(注此代码需要用IAR编译器,不用KEIL)
2023/7/25 17:53:31 515KB 激光雷达
1
设一个时隙Aloha系统的时隙长度为1,所有节点的数据包均等长且等于时隙长度。
网络中的节点数为m,各节点数据包以泊松过程到达。
假设每个节点的数据包到达强度均为λ/m,在不同的λ下,使用计算机仿真时隙Aloha系统数据包传送的成功概率,绘制呼入强度和成功概率的曲线,与理论结果进行对照。
注意:节点个数m要足够多。
假设每个节点的数据包到达强度均为λ/m。
以及节点数m,采用延时的下界。
选取合理的等待重传的节点在每一个时隙重传的概率qr。
仿真时隙Aloha系统数据传输过程,统计在不同积压节点数n的情况下,到达率及离开率Ps(n),绘制到达率和离开率随n的分布情况,和理论值进行对照。
调整qr大小,考察曲线的变化,和理论值进行对照。
假设每个节点的数据包到达强度均为λ/m。
以及节点数m,采用延时的下界。
选取合理的等待重传的节点在每一个时隙重传的概率qr。
仿真时隙CSMA协议,其中空闲时隙长度β<1。
绘制到达率和离开率随n的分布情况,和理论值进行对照。
调整β大小,考察曲线的变化,和理论值进行对照。
在(3)基础上,进一步引入碰撞检测机制,仿真CSMA/CD协议,其中空闲时隙和碰撞时隙长度均为β<1。
绘制到达率和离开率随n的分布情况,和理论值进行对照。
调整β大小,考察曲线的变化,和理论值进行对照。
2023/7/19 2:34:57 4KB Aloha CSMA
1
用DDraw实现射击游戏阐发文档要点一:画图自动切割IDirectDrawSurface7::BltFast()方式中不自动切割成果,即当画图元素逾越窗口之外时不会自动切割,DDraw遴选自动漠视不画,组成一旦逾越窗口,画图元素会忽然磨灭。
处置这一下场的方式是手动切割,代码如下://自动切割 RECTscRect; //寄存之后窗口大小地域 ZeroMemory(&scRect,sizeof(scRect)); GetWindowRect(GetActiveWindow(),&scRect); //提防图片左上角逾越窗口左上角 if(xscRect.right?scRect.right:x; y=y>scRect.bottom?scRect.bottom:y; m_rect.right=x+m_rect.right-m_rect.left>scRect.right?scRect.right-x+m_rect.left:m_rect.right; m_rect.bottom=y+m_rect.bottom-m_rect.top>scRect.bottom?scRect.bottom-y+m_rect.top:m_rect.bottom;惟独将上述代码加在CGraphic::BltBBuffer()中的m_bRect=m_rect;前就可。
要点二:配景的滚轴实现 画配景能够分为如下三种情景: 情景一:配景图片与窗口等高 情景二:配景图片高度小于窗口高度 情景三:配景图片高度大于窗口高度上述教学图与代码相对于应地看,有助于约莫知道。
另外,要点一实现之后,由于已经能够自动切割,画配景能够用另外方式。
要点三:精灵图的实普通游戏中,如RPG游戏中的人物图、射击类游戏的飞机、爆炸等,叫做精灵图。
精灵图实际上是将齐全帧的图片放在一个文件中,游戏时靠一个RECT来抑制画图像文件中的哪一部份,进而抑制游戏展现哪一帧图,惟独抑制好RECT的位置就可。
如下图:抑制RECT的四个角的坐标的挪动,有如下代码:if(m_timeEnd–m_timeStart>100) //惟独到了100ms之后才画图 {m_ImageID++; if(m_ImageID-m_beginID>=num) { m_ImageID=m_beginID; //末了一帧的下一帧是第一帧 } m_timeStart=timeGetTime(); } intid=m_ImageID++; SetRect(&m_rect,41*id,0,41*(id+1),41); //飞机精灵图大小是41×41 m_pGraph->BltBBuffer(m_pImageBuffer,true,m_Pos.x,m_Pos.y,m_rect);如许就实现为了精敏捷画的下场。
要点四:拿STL举行枪弹的实现枪弹的实现能够使用STL中的vector,当按下开战键时收回一颗枪弹,就往vector中削减一个结点;
当枪弹飞出窗口或者击中敌机时,再将结点从vector中删除了。
每一帧游戏画面中枪弹翱翔时惟独将vector中的齐全枪弹举行处置、绘画就可。
参考代码如下:1.削减枪弹if(g_ctrlDown) //当ctrl键按下时开炮! { m_BulletEnd=m_Gtime->GetTime(); if((m_BulletEnd-m_BulletStart)*1000>120) //假如络续按着开战键不放,这里抑制不会收回太多枪弹 { m_BulletStart=m_BulletEnd; MBULLETtmpBullet; tmpBullet.pos.x=m_SPos.x-1; //记实开战时的枪弹位置 tmpBullet.pos.y=m_SPos.y-26; tmpBullet.speed=5; //该枪弹的翱翔速率 m_BulletList.push_back(tmpBullet); //将枪弹削减到vector中 } } 2.删除了枪弹vector::iteratoritei; //vector迭代器 for(itei=m_BulletList.begin();itei!=m_BulletList.end();itei++) //遍历齐全枪弹{m_BulletList.erase(itei); //删除了这个枪弹itei=m_BulletList.begin(); //删除了一个结点后,为防止侵蚀下次就重新查验if(m_BulletList.empty()) break; //若删除了结点后枪弹vector已经空则跳出轮回} 3.枪弹遍历处置vector::iteratoritei; //vector迭代器 for(itei=m_BulletList.begin();itei!=m_BulletList.end();itei++) //遍历齐全枪弹{itei->pos.y-=itei->speed; //枪弹翱翔}要点五:碰撞检测使用WindowsAPI函数RectInRegion:vector::iteratoritei; //vector迭代器for(itei=m_EnimyList.begin();itei!=m_EnimyList.end();itei++) //遍历齐全敌机{HRGNhrgn=::CreateRectRgn(m_player->pos.x,m_player->pos.y,m_player->pos.x+41,m_player->pos.y+41); //患上到飞机Region,图宽41高41 SetRect(&m_rect,itej->getPosition().x,itej->getPosition().y,itej->getPosition().x+50,itej->getPosition().y+50) //患上到敌机rect,敌机宽50高50 if(RectInRegion(hrgn,&m_rect)) //两机相撞 { ……………………. //碰撞之后的种种处置 }}让碰撞愈加准确:使用WindowsAPI函数PtInRegion()以及CreatePolygonRgn(),选取配角飞机的三个关键点的坐标放在POINT数组中,并将其作为参数代入CreatePolygonRgn()中天生HRGN,在枪弹与配角飞机做碰撞检测时惟独分辨枪弹的中间点能否在这个Region中就可(PtInRegion())。
留意:CreateRectRgn()与CreatePolygonRgn()等建树Region的函数会占用体系资源,由于游戏的主渲染函数Render()是络续实施的,如许会组成资源糜掷,于是在用完之后未必要释放:DeleteObject(region)要点六:敌机直线翱翔末了想这个下场的时候,感应很好实现,脑子里马上想到以及了。
其实如许实现有下场,当尽头以及尽头的连线斜率不是1或者-1时就会涌现意想不到的责任了,飞机并无直接飞向尽头,而因此斜率相对于值为1的路途飞已经往,再水平或者垂直飞向尽头。
处置这个下场有多少个方式,其中有一个方式是行使盘算机图形学上的Bresenhem直线算法。
该算法用于盘算机画平面上的直线,算法如下:|m|abs(deltaY))//轨迹斜率0)//1 { if(m_bFirstCalculate) { m_Delta=2*abs(deltaX)-abs(deltaY);//d0=2×dx-dy m_bFirstCalculate=false; } //依据轨迹斜率分辨能否要挪动X坐标 if(m_Delta>0)//m_iTempo)break;}//endofwhile(*pStr)
2023/5/1 0:27:02 2.18MB DDraw
1
《3D游戏编程大师技巧》是游戏编程畅销书作者AndréLaMothe的扛鼎之作,从游戏编程和软件引擎的角度深入探讨了3D图形学的各个重要主题。
全书共分5部分,包括16章的内容。
第1~3章简要地介绍了Windows和DirectX编程,创建了一个Windows应用程序模板,让读者能够将精力放在游戏逻辑和图形实现中,而不用考虑Windows和DirectX方面的琐事;
第4~5章简要地介绍了一些数学知识并实现了一个数学库,供以后编写演示程序时使用;
第6章概述了3D图形学,让读者对之后即将介绍的内容有大致的了解;
第7~11章分别介绍了光照、明暗处理、仿射纹理映射、3D裁剪和深度缓存等内容;
第12~14章讨论了高级3D渲染技术,包括透视修正纹理映射、Alpha混合、1/z缓存、纹理滤波、空间划分和可见性算法、阴影、光照映射等;
第15~16章讨论了动画、运动碰撞检测和优化技术。
《3D游戏编程大师技巧》适合于有一定编程经验并想从事游戏编程工作或对3D图形学感兴味的人员阅读。
2023/3/16 6:16:57 30.91MB 3D游戏
1
2D多边形碰撞专用多边形检测算法,C++制造,支持圆形,三角形,不规则多边形,矩形,支持这几种多边形互相之间的碰撞检测,效率很高,每一个算法都专门做了函数
2023/3/12 6:56:54 214KB 分离轴检测
1
基于opengl完成的碰撞检测算法及论文(韩截图),包含详细的代码和解析,大学优秀毕业论文。
2023/2/11 6:27:58 1.17MB 碰撞 检测 opengl
1
共 35 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡