- 浏览: 137071 次
- 性别:
- 来自: 大连
-
文章分类
最新评论
-
datawarehouse:
datawarehouse 写道ngix 淘宝是基于这个开发了 ...
解密淘宝网的开源架构 -
datawarehouse:
ngix 淘宝是基于这个开发了一个自己的webserver吧。 ...
解密淘宝网的开源架构 -
eyelock:
我运行报错,,楼主能解答一下G,对swing不熟。
raphi ...
假期没事,写了个90行的俄罗斯方块,Java实现,史上最小巧 -
lostsky_11:
楼主写出例子了么?物理碰撞部分可能跟你说的差不多渲染部分可以搜 ...
Where is my water 游戏算法 -
xouou_53320:
都是牛人
假期没事,写了个90行的俄罗斯方块,Java实现,史上最小巧
HGEDistortionMesh例子应用了HGE包中的内容 用来对图片进行扭曲变形处理 #include <stdio.h> #include <JGE.h> #include <JRenderer.h> #include <JLBFont.h> #include <hge/hgedistort.h> #include <hge/hgefont.h> #include "GameApp.h" //------------------------------------------------------------------------------------- // Constructor. Variables can be initialized here. // //------------------------------------------------------------------------------------- GameApp::GameApp() { mTex = NULL;//人物图片Tex mDistortionMesh = NULL;//扭曲工具类 mFont = NULL;//字体 mRows=8;//扭曲参数 mCols=8;//应该是粒度或强度 mCellw=(float)(TEXTURE_WIDTH/(mCols-1));//均匀区分图片为N个Cell cell宽度 mCellh=(float)(TEXTURE_HEIGHT/(mRows-1));//Cell高度 mMeshx=(SCREEN_WIDTH_F-TEXTURE_WIDTH)/2;//扭曲后的图片位置 mMeshy=(SCREEN_HEIGHT_F-TEXTURE_HEIGHT)/2;//在屏幕中央 } //------------------------------------------------------------------------------------- // Destructor. // //------------------------------------------------------------------------------------- GameApp::~GameApp() { } //------------------------------------------------------------------------------------- // This is the init callback function. You should load and create your in-game // resources here. // //------------------------------------------------------------------------------------- void GameApp::Create() { JRenderer* renderer = JRenderer::GetInstance(); mTex=renderer->LoadTexture("texture.jpg");//加载人物图片 // Create a distortion mesh mDistortionMesh=new hgeDistortionMesh(mCols, mRows);//设置扭曲的分块8*8的分块 mDistortionMesh->SetTexture(mTex);//用图片来扭曲 mDistortionMesh->SetTextureRect(0,0,TEXTURE_WIDTH,TEXTURE_HEIGHT);//设置要扭曲的大小 mDistortionMesh->Clear(ARGB(0xFF,0xFF,0xFF,0xFF));//清楚扭曲区 // Load a font mFont=new hgeFont("font1.fnt");//加载显示文字的字体 } //------------------------------------------------------------------------------------- // This is the clean up callback function. You should delete all your in-game // resources, for example texture and quads, here. // //------------------------------------------------------------------------------------- void GameApp::Destroy() { SAFE_DELETE(mTex); SAFE_DELETE(mDistortionMesh); SAFE_DELETE(mFont); } //------------------------------------------------------------------------------------- // This is the update callback function and is called at each update frame // before rendering. You should update the game logic here. // //------------------------------------------------------------------------------------- void GameApp::Update() { JGE* engine = JGE::GetInstance(); // do a screen shot when the TRIANGLE button is pressed if (engine->GetButtonClick(PSP_CTRL_TRIANGLE)) { char s[80]; // save screen shot to root of Memory Stick sprintf(s, "ms0:/screenshot.png"); JRenderer::GetInstance()->ScreenShot(s); } // exit when the CROSS button is pressed if (engine->GetButtonClick(PSP_CTRL_CROSS)) { engine->End(); return; } float dt = engine->GetDelta(); // Get time elapsed since last update. static float t=0.0f;//函数中的静态变量 第一次进入的时候初始化 再进入的时候就沿用原来的值了 static int trans=2;//这点和Java有点不一样 int i, j, col; float r, a, dx, dy; t+=dt;//当前时间 越加越多阿= =???? //按圆按钮 每次改变一个扭曲效果并清屏 if (engine->GetButtonClick(PSP_CTRL_CIRCLE)) { if(++trans > 2) trans=0; mDistortionMesh->Clear(ARGB(0xFF,0xFF,0xFF,0xFF)); } // Calculate new displacements and coloring for one of the three effects //trans3种不同的扭曲效果 switch(trans) { case 0: //将整个图片划分成各个Cell 并单独扭曲 for(i=1;i<mRows-1;i++) { for(j=1;j<mCols-1;j++) { //参数分别为(列,行,Cell中的x坐标,Cell中的y坐标,扭曲效果,根据Cell中心扭曲即HGEDISP_NODE) mDistortionMesh->SetDisplacement(j,i,cosf(t*10+(i+j)/2)*5,sinf(t*10+(i+j)/2)*5,HGEDISP_NODE); //cosf(t*10+(i+j)/2)*5算式根据时间t与Cos余弦函数的乘积 动态改变扭曲的X方向粒度 在一个0~5中变化 //sinf(t*10+(i+j)/2)*5根据sin函数 改变扭曲y方向的粒度 在0~5之间变化 //每个Cell是32*32的大小 整个扭曲的图片时256*256的 分为8*8个Cell } } //mDistortionMesh->SetDisplacement(2,2,cosf(t*10+(2+2)/2)*8,sinf(t*10+(2+2)/2)*8,HGEDISP_NODE); //mDistortionMesh->SetDisplacement(1,1,cosf(t*10+(1+1)/2)*3,sinf(t*10+(1+1)/2)*3,HGEDISP_NODE); break; case 1: for(i=0;i<mRows;i++) { for(j=1;j<mCols-1;j++) { //变形只在x方向上扭曲 并且只根据j值变化 y方向上为0 所以x方向上是0~15的扭曲粒度 变形很严重 //依然是从左上角的cell到右下角的cell 效果类似波浪 如果再加上i的值 变形会在上下方向上不一致 mDistortionMesh->SetDisplacement(j,i,cosf(t*5+(j+i)/2)*15,0,HGEDISP_NODE); col=int((cosf(t*5+(i+j)/2)+1)*35); // colour doesn't work the same as the original HGE version so the following line is commented out. // dis->SetColor(j,i,ARGB(0xFF,col,col,col)); } } break; //这个变形函数没看明白 case 2: for(i=0;i<mRows;i++) { for(j=0;j<mCols;j++) { r=sqrtf(powf(j-(float)mCols/2,2)+powf(i-(float)mRows/2,2)); a=r*cosf(t*2)*0.1f; dx=sinf(a)*(i*mCellh-TEXTURE_HEIGHT/2)+cosf(a)*(j*mCellw-TEXTURE_WIDTH/2); dy=cosf(a)*(i*mCellh-TEXTURE_HEIGHT/2)-sinf(a)*(j*mCellw-TEXTURE_WIDTH/2); mDistortionMesh->SetDisplacement(j,i,dx,dy,HGEDISP_CENTER); col=int((cos(r+t*4)+1)*40); // colour doesn't work the same as the original HGE version so the following line is commented out. // dis->SetColor(j,i,ARGB(0xFF, col,(col/2), 0)); } } break; } } //------------------------------------------------------------------------------------- // All rendering operations should be done in Render() only. // //------------------------------------------------------------------------------------- void GameApp::Render() { // get JRenderer instance JRenderer* renderer = JRenderer::GetInstance(); // clear screen to black renderer->ClearScreen(ARGB(0,0,0,0)); // render the mesh mDistortionMesh->Render(mMeshx, mMeshy);//绘制扭曲的图片 mFont->printf(5, 5, HGETEXT_LEFT, "Press\nCIRCLE!");//显示文字 } //------------------------------------------------------------------------------------- // This function is called when the system wants to pause the game. You can set a flag // here to stop the update loop and audio playback. // //------------------------------------------------------------------------------------- void GameApp::Pause() { } //------------------------------------------------------------------------------------- // This function is called when the game returns from the pause state. // //------------------------------------------------------------------------------------- void GameApp::Resume() { }
发表评论
-
过年没事,一天时间写了一个是男人就撑住20秒的Java版
2012-01-24 13:21 3818每年过年都没事,都得写点小东西,今年是是男人就撑过20秒(20 ... -
Where is my water 游戏算法
2012-01-23 19:56 2136过年把Where is my water完了一遍,对这个游戏的 ... -
假期没事,写了个90行的俄罗斯方块,Java实现,史上最小巧
2010-02-16 23:03 11091Bug已经Fix~~ 注释已经补充 import jav ... -
俄罗斯方块:C++中的常用错误原因~~
2008-07-20 20:45 1340很久没有用C++写程序了。。用起来很不顺手! 出了问题不知道怎 ... -
疯狂游戏系列之(一)疯狂俄罗斯策划
2008-07-18 20:38 1504闲来无事,做一个PSP上的俄罗斯方块游戏,大致原则是两个字 疯 ... -
PSP程序开发例子解析(十二)InputSystem
2008-07-14 20:50 1090InputSystem例子掩饰了如何在程序中输入文字 #i ... -
PSP程序开发例子解析(十一)HGEParticles
2008-07-14 20:50 1063HGEParticles这个例子很BT 模仿WindowsMe ... -
PSP程序开发例子解析(九)3DPrimer
2008-07-14 20:48 12713D例子显示一个Cube和一个人物 不断旋转 具体底部底层AP ... -
PSP程序开发例子解析(八)Animator
2008-07-14 20:48 966GameApp.cpp #include <std ... -
PSP程序开发例子解析(七)DisplayingChinese
2008-07-14 20:46 972显示中文 加载点阵文件 没啥说的 就是不清楚点阵文件是哪来的= ... -
PSP程序开发例子解析(六)TrueTypeFont
2008-07-14 20:45 1068按照Windows的ttf字体显示文字。。跑不起来 略 #i ... -
PSP程序开发例子解析(五)Shapes
2008-07-14 20:44 926绘制各种形状 无话可说 #include <st ... -
PSP程序开发例子解析(四)Splines
2008-07-14 20:38 968第四个例子讲述了曲线 ... -
PSP程序开发例子解析(三)ResourceManager
2008-07-14 20:38 974太晚了 明天再写 弄个res文件没找到 换了个工程 copy源 ... -
PSP程序开发例子解析(二)Images
2008-07-14 20:37 1167第二个例子程序演示了 ... -
PSP程序开发例子解析(一)HelloWorld
2008-07-14 20:31 3036今天晚上把PSP的开发环境搭建了起来 并且看了看PSP的Hel ... -
关于BMP图片格式(部分垃圾代码)
2007-11-17 19:05 1358java 代码 做了个刷投票的程序 识别随即码图片的地方 ...
相关推荐
uniapp实战商城类app和小程序源码,包含后端API源码和交互完整源码。
本课程是 PHP 进阶系列之 Swoole 入门精讲,系统讲解 Swoole 在 PHP 高性能开发中的应用,涵盖 协程、异步编程、WebSocket、TCP/UDP 通信、任务投递、定时器等核心功能。通过理论解析和实战案例相结合,帮助开发者掌握 Swoole 的基本使用方法及其在高并发场景下的应用。 适用人群: 适合 有一定 PHP 基础的开发者、希望提升后端性能优化能力的工程师,以及 对高并发、异步编程感兴趣的学习者。 能学到什么: 掌握 Swoole 基础——理解 Swoole 的核心概念,如协程、异步编程、事件驱动等。 高并发处理——学习如何使用 Swoole 构建高并发的 Web 服务器、TCP/UDP 服务器。 实战项目经验——通过案例实践,掌握 Swoole 在 WebSocket、消息队列、微服务等场景的应用。 阅读建议: 建议先掌握 PHP 基础,了解 HTTP 服务器和并发处理相关概念。学习过程中,结合 官方文档和实际项目 进行实践,加深理解,逐步提升 Swoole 开发能力。
matlab齿轮-轴-轴承系统含间隙非线性动力学 基于matlab的齿轮-轴-轴承系统的含间隙非线性动力学模型,根据牛顿第二定律,建立齿轮系统啮合的非线性动力学方程,同时也主要应用修正Capone模型的滑动轴承无量纲化雷诺方程,利用这些方程推到公式建模;用MATLAB求解画出位移-速度图像,从而得到系统在不同转速下的混沌特性,分析齿轮-滑动轴承系统的动态特性 程序已调通,可直接运行 ,关键词:Matlab;齿轮-轴-轴承系统;含间隙非线性动力学;牛顿第二定律;动力学方程;修正Capone模型;无量纲化雷诺方程;位移-速度图像;混沌特性;动态特性。,基于Matlab的齿轮-轴-轴承系统非线性动力学建模与混沌特性分析
2024年移动应用隐私安全观测报告.pdf
本电影评论网站管理员和用户。管理员功能有个人中心,用户管理,电影类别管理,电影信息管理,留言板管理,论坛交流,系统管理等。用户可以对电影进行评论。因而具有一定的实用性。本站是一个B/S模式系统,采用SSM框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得电影评论网站管理工作系统化、规范化。 本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高电影评论网站管理效率。 关键词:电影评论网站;SSM框架;MYSQL数据库 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关技术 2 2.1 MYSQL数据库 2 2.2 B/S结构 3 2.3 Spring Boot框架简介 4 3系统分析 4 3.1可行性分析 4 3.1.1技术可行性 4 3.1.2经济可行性 5 3.1.3操作可行性 5 3.2系统性能分析 5 3.2.1 系统安全性 5 3.2.2 数据完整性 6 3.3系统界面分析 6 3.4系统流程和逻辑 7 4系统概要设计 8 4.1概述 8 4.2系统结构 9 4.
2023-04-06-项目笔记-第四百三十六阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.434局变量的作用域_434- 2025-03-13
基于STM32的流量计智能流速流量监测、水泵报警系统(泵启动 1100027-基于STM32的流量计智能流速流量监测、水泵报警系统(泵启动、阈值设置、LCD1602、超阈值报警、proteus) 功能描述: 基于STM32F103C8单片机实现的智能流速、流量,流量计设计 实现的功能是通过信号发生器模拟齿轮传感器,检测流量的大小,同时计算流过液体的总容量 可以设置最大流过的总容量,当超过设定值后通过蜂鸣器与LED灯指示 当没有超过则启动水泵控制电路带动液体流动 1、流速检测 2、流量统计 3、阈值显示与设置(通过按键实现阈值的调节或清零) 4、水泵启动 5、超阈值报警 有哪些资料: 1、仿真工程文件 2、PCB工程文件 3、原理图工程文件 4、源代码 ,核心关键词: 基于STM32的流量计; 智能流速流量监测; 水泵报警系统; 阈值设置; LCD1602; 超阈值报警; Proteus仿真; STM32F103C8单片机; 齿轮传感器; 信号发生器; 流量统计; 蜂鸣器与LED灯指示; 水泵控制电路。,基于STM32的智能流量监测与报警系统(阈值可调、流速与流量监
(灰度场景下的平面、海底、船、受害者)图像分类数据集【已标注,约1100张数据】 数据经过预处理,可以直接作为分类网络输入使用 分类个数【4】:平面、海底、船、受害者【具体查看json文件】 划分了训练集、测试集。存放各自的同一类数据图片。如果想可视化数据集,可以运行资源中的show脚本。 图像分类、分割网络改进:https://blog.csdn.net/qq_44886601/category_12858320.html 计算机视觉完整项目:https://blog.csdn.net/qq_44886601/category_12816068.html
arkime无geo下的oui文件
人脸识别项目实战
人脸识别项目实战
CAD 2025 二次开发dll
人脸识别项目源码实战
c语言学习
基于扩张状态观测器eso扰动补偿和权重因子调节的电流预测控制,相比传统方法,增加了参数鲁棒性 降低电流脉动,和误差 基于扩张状态观测器eso补偿的三矢量模型预测控制 ,基于扩张状态观测器; 扰动补偿; 权重因子调节; 电流预测控制; 参数鲁棒性; 电流脉动降低; 误差降低; 三矢量模型预测控制,基于鲁棒性增强和扰动补偿的电流预测控制方法
c语言学习
UE开发教程与学习方法记录.zip
在智慧园区建设的浪潮中,一个集高效、安全、便捷于一体的综合解决方案正逐步成为现代园区管理的标配。这一方案旨在解决传统园区面临的智能化水平低、信息孤岛、管理手段落后等痛点,通过信息化平台与智能硬件的深度融合,为园区带来前所未有的变革。 首先,智慧园区综合解决方案以提升园区整体智能化水平为核心,打破了信息孤岛现象。通过构建统一的智能运营中心(IOC),采用1+N模式,即一个智能运营中心集成多个应用系统,实现了园区内各系统的互联互通与数据共享。IOC运营中心如同园区的“智慧大脑”,利用大数据可视化技术,将园区安防、机电设备运行、车辆通行、人员流动、能源能耗等关键信息实时呈现在拼接巨屏上,管理者可直观掌握园区运行状态,实现科学决策。这种“万物互联”的能力不仅消除了系统间的壁垒,还大幅提升了管理效率,让园区管理更加精细化、智能化。 更令人兴奋的是,该方案融入了诸多前沿科技,让智慧园区充满了未来感。例如,利用AI视频分析技术,智慧园区实现了对人脸、车辆、行为的智能识别与追踪,不仅极大提升了安防水平,还能为园区提供精准的人流分析、车辆管理等增值服务。同时,无人机巡查、巡逻机器人等智能设备的加入,让园区安全无死角,管理更轻松。特别是巡逻机器人,不仅能进行360度地面全天候巡检,还能自主绕障、充电,甚至具备火灾预警、空气质量检测等环境感知能力,成为了园区管理的得力助手。此外,通过构建高精度数字孪生系统,将园区现实场景与数字世界完美融合,管理者可借助VR/AR技术进行远程巡检、设备维护等操作,仿佛置身于一个虚拟与现实交织的智慧世界。 最值得关注的是,智慧园区综合解决方案还带来了显著的经济与社会效益。通过优化园区管理流程,实现降本增效。例如,智能库存管理、及时响应采购需求等举措,大幅减少了库存积压与浪费;而设备自动化与远程监控则降低了维修与人力成本。同时,借助大数据分析技术,园区可精准把握产业趋势,优化招商策略,提高入驻企业满意度与营收水平。此外,智慧园区的低碳节能设计,通过能源分析与精细化管理,实现了能耗的显著降低,为园区可持续发展奠定了坚实基础。总之,这一综合解决方案不仅让园区管理变得更加智慧、高效,更为入驻企业与员工带来了更加舒适、便捷的工作与生活环境,是未来园区建设的必然趋势。
VSCodeUserSetup-x64-1.98.0.rar vscode是一种简化且高效的代码编辑器,同时支持诸如调试,任务执行和版本管理之类的开发操作。它的目标是提供一种快速的编码编译调试工具。然后将其余部分留给IDE。vscode集成了所有一款现代编辑器所应该具备的特性,包括语法高亮、可定制的热键绑定、括号匹配、以及代码片段收集等。 Visual Studio Code(简称VSCode)是Microsoft开发的代码编辑器,它支持Windows,Linux和macOS等操作系统以及开源代码。它支持测试,并具有内置的Git版本控制功能以及开发环境功能,例如代码完成(类似于IntelliSense),代码段和代码重构等。编辑器支持用户定制的配置,例如仍在编辑器中时,可以更改各种属性和参数,例如主题颜色,键盘快捷键等,内置的扩展程序管理功能。
1、文件内容:highcontrast-qt5-0.1-2.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/highcontrast-qt5-0.1-2.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊