# 基于Android平台的幼儿教育APP——3D电子积木
### 一、前言
这是我在大学工作室的最后一个项目,大三下学期,大年 29 还去老师家研究算法、汇报进展,寒假放的一周假除了吃年夜饭基本每天都是朝 6 晚 12 满负荷,这些场景都历历在目,不过也很欣慰,这个项目拿下了工作室所参加的所有比赛的最高奖项:中国大学生计算机设计大赛全国一等奖、「发现杯」全国大学生互联网软件设计大奖赛华北赛区一等奖/全国总决赛二等奖、「鑫台华杯」华北五省及港澳台大学生计算机应用大赛一等奖,也算是为我工作室生涯 and 和老五的合作画上了一个圆满的句号。
### 二、项目介绍
3D电子积木是一款结合电子知识的教育类应用,它采用的是数据可扩展的架构,用户不单可以体验内置的实验,还可以下载服务器上的实验数据包。现阶段,安装程序内置6个实验,这6个实验用户可以直接体验,服务器上有另外6个实验,用户需要下载才可以体验。
元器件介绍界面包含了所有元器件的3D展示与文字介绍。
APP 初始状态包含 6 个内置实验,除此之外也可以由用户自行下载额外可供的实验包(商业模式:可修改成付费下载)。
加载界面会随机提示一些电路相关的知识点。实验界面可以旋转视角、将元器件拼接到电路板上,连通电路呈现出对应的实验效果。
### 三、技术难点
#### 1、电路计算核心算法
这是本软件最大的难点,将电路转化成数学模型,首先要将电源以及导线直接看做电流源,因为电路未联通时是无法判断电流方向的,只有这样才可以将复杂的物理模型转换为数学模型。之后根据对结点电压法的进一步改进,得到了适应本软件的升级版结点电压法。
矩阵是解决很多算法难题的优良选择,当将建立好的电路转到矩阵的数学模型上后,由矩阵来检测电路的正确性,每个元器件都是更新矩阵的元素,当确认连通后,就得对这个最终矩阵进行简化和 LU 分解,最后的结果标示这实验最终呈现效果。
#### 2、数据异步加载
位于服务器待下载的数据包,需要实现异步加载才可以被显示在用户的设备中。首先是最简单的普通数据文件的加载,需要使用字节流的方式,将数据文件下载到本地并加以读取,这一步并不难实现。
难点在于对于图片和视频的加载。对于图片,可以通过创建一个载体的方式来加以显示, Unity 封装了 Texture 和 Sprite 工具类,而后者可以作为最终图片的容器。对于视频,我们利用了视频贴图技术,将相对路径和绝对路径区分开来,这么做是因为在移动设备中并不是任何路径都对开发者提供所有类似读写的权限,之后不断优化以及封装此模块的代码,最终实现了只需要接收一个参数就可以获取播放视频的机制。
#### 3、数据包的解压缩
其实在项目开发时,最先考虑并不是 Zip 格式保存数据包,而是用 Unity 提供的 Assetbundle 格式来保存,但是经过多次测试,这种格式被淘汰了,最终我们应用Zip格式。所以当数据包被异步加载到用户设备中时,还需要对其进行解压缩处理。
解压缩在应用中体现不明显,基本紧随下载完成。经过一段时间的查阅资料以及测试,明白 Unity 中如果要实现解压缩的功能,需要下载 ICSharpCode.SharpZipLib.dll 文件,下载完成后将该文件放置在项目的相关路径中,之后利用命名空间的引用来编写相关代码来实现解压缩功能。
#### 4、多指触控
触控在代码逻辑中被单立一个特殊模块,项目中共包含了5种不同的触控手势:单指点击、单指滑动、双指左右平移、双指上下平移、双指缩放。其中单指点击和单指滑动这两个手势,Unity 引擎自身已经有了很好的封装和相关API,只需要调用即可。
在区分双指平移以及缩放时,利用了向量相关的知识。首先要了解应用画面的更新是以帧为单位,每两帧之间的间隔非常短,我们可以获取上一帧手指的位置,与当前帧手指的位置形成一个二维向量,因为是双指操作,所以会得到两个二位向量,之后判断这两个向量的夹角,就可以区分当前操作是平移还是缩放。
#### 5、元器件拼接
在初始的模型调整时,严格规划了模型的尺寸,全部按照实际尺寸比例。Unity 引擎自带碰撞器,为我们的检测带来了方便,此时碰撞器删除以往物理碰撞的载体身份,而是作为一个触发器。
当两个纽扣的碰撞器碰触到的时候,不触发物理上的碰撞,而是传给管理层一个触碰信息,得到这一信息后,由代码进行检测,计算中心位置,如果满足拼接要求,则进行拼接。在模型设计初,我们为每个模型都进行了归类处理,同一类型的模型被冠以相同的标签 Tag ,这也是是否可以进行拼接的判断因素之一。
#### 6、场景间的异步加载
由于模型较为精细,进入实验场景时需要大量加载时间,这种现象严重降低用户的体验,所以场景之间的异步加载是必须要解决的。
为此新建了一个过渡场景,在此场景中设置进度条,首先禁止 Unity 中加载完毕后自动切换场景的模式,在过渡场景运行的同时,也对实验场景进行加载,通俗的说就读条滚动和下一个场景的预读是同步进行的,这样就使整个软件看起来运行更加流畅了。
没有合适的资源?快使用搜索试试~ 我知道了~
基于Android平台的幼儿教育APP——3D电子积木.zip
共2000个文件
meta:772个
bin:463个
mat:419个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 81 浏览量
2023-10-22
10:23:11
上传
评论 1
收藏 224.03MB ZIP 举报
温馨提示
1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 -------- 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
资源推荐
资源详情
资源评论
收起资源包目录
基于Android平台的幼儿教育APP——3D电子积木.zip (2000个子文件)
Breath.anim 12KB
Twinkle2.anim 12KB
Twinkle.anim 12KB
Shadow.anim 11KB
LoadOver.anim 11KB
Fade.anim 11KB
Title.anim 10KB
PopTip.anim 10KB
Breath2.anim 10KB
Hide.anim 10KB
3D电子积木.apk 79.09MB
ProjectSettings.asset 40KB
InputManager.asset 5KB
QualitySettings.asset 5KB
TagManager.asset 4KB
GraphicsSettings.asset 4KB
EditorUserBuildSettings.asset 4KB
NavMeshAreas.asset 4KB
Physics2DSettings.asset 4KB
EditorBuildSettings.asset 4KB
DynamicsManager.asset 4KB
EditorSettings.asset 4KB
UnityConnectSettings.asset 4KB
AudioManager.asset 4KB
UnityAdsSettings.asset 4KB
TimeManager.asset 4KB
NetworkManager.asset 4KB
ClusterInputManager.asset 4KB
df42735ac525774324d986914cee2981.bin 22KB
df660722a91ab60323f62a0200cfc999.bin 22KB
d3b94e3587b2eefc449af2ac9079069d.bin 12KB
d174fff85b9fcf56b3e3d8e7017daf60.bin 11KB
db913dd19148fb800ef6872aa0a8f38d.bin 11KB
d62e971e3fc218244f53d0b197e16bb3.bin 10KB
df0e7d4992b5726d8ea76dd6edcf3467.bin 10KB
d5908989c62be61e746051dbbc3aa246.bin 10KB
d16c8f87f8a59d638872c56a10ab8ca5.bin 10KB
d91017c413d0c4942fb7abb5253fb7ea.bin 10KB
d27ea69f02d50bc8c08ffad6d0ac9c50.bin 10KB
d358881f8410feee2588d1581b6b2c08.bin 10KB
dbae48f908e4a7451f52e56b880e0368.bin 10KB
df204dbbd771694ff60189e01cefb0c6.bin 10KB
dcbe658e5f3bd86525ab25f6623ee992.bin 10KB
d7bee5ceb91583e4e5f96338e76faff8.bin 10KB
d91237aec3e2ab4f697249e4e5860809.bin 9KB
d8d1c9b4f5c5de9ba9b1dded7dec7a1c.bin 9KB
d67b63fbe1ee7b592d245b3cf009ba63.bin 9KB
d62d40904601d5f8199c4786ba6209a8.bin 9KB
da4c1c05ff310209c73088e116612f92.bin 9KB
d5e563ff321b6c497e9aa6d5a1c43fe3.bin 9KB
d67906e9d0b17244b1582076beecf9ce.bin 9KB
d938fdc4411771262d944e5a657bafb8.bin 9KB
023515da54743f3a7c0201ec78202ba7.bin 9KB
d1f11530d6424087481a1ff35ad19994.bin 9KB
de9b9ec018106ecd9a1f11fa8cd86e6b.bin 8KB
df2c6a8a1fc20a2249031fed92ab34f0.bin 8KB
d2e800016f7a23108ea15384129508d1.bin 8KB
dca849eec810cecaa7622d0e1022b93c.bin 8KB
dbfcc44c3fa3c63d07c54db332b54ad1.bin 8KB
d3c23b292a77fd44e963c37a35e27d0f.bin 8KB
d2281b5812e722a0b7374dca4fe52ddf.bin 8KB
0855d988f12f39ad925557f75d652224.bin 8KB
d322b600de9df3a79e6f1b004cffaab1.bin 8KB
d53900683bf01f898e992ac05da9b0b4.bin 8KB
d9d7daf523411170445fc658786fd301.bin 7KB
d53e991af66e91bfd0bc0b28ecf498e0.bin 7KB
d0a2ab2e8605cd3aaa281800f215a16e.bin 7KB
d17d0bceb71aad268e83f229aa381475.bin 7KB
d75dec6bff439a719bde745e6ccbb842.bin 7KB
da07682488d028bd8d54feb80e420956.bin 7KB
d51dfbe2f6aecd59deca0f8ccfcae45c.bin 7KB
d00cf743a492d4011504bec7a25b67ba.bin 7KB
dc8f58f671b52f95fa01184665541fd1.bin 7KB
dc36d5aaccce917f47e0f2682b8e0d43.bin 7KB
d9d452fc736013511e000958053888d1.bin 7KB
d93a78cf69dd666c7a2af699940c5424.bin 7KB
d2e8f59e5bd25236511e52b89ddde793.bin 7KB
d0b9c02dd544dc2d85cf4290a5246022.bin 7KB
0d8032912fc4be11ef046461ea180cbe.bin 7KB
d5dcbfc7713c39402d4e84b47d31b7f6.bin 7KB
d45dddc28bafa35754071a810b670ed2.bin 7KB
077f9296b23d85099916930ca71950f7.bin 7KB
dfbd3699524eff93147f2979bc7b1b97.bin 7KB
dabfe07f51be258eadaa9257cead30f6.bin 7KB
da0113f266bcffe968950a6d8d69c202.bin 7KB
d63be70d3dce472268ba84db3307e3d4.bin 7KB
d64786b9c400ce1ac887300a097ebc43.bin 7KB
dbd88ab1f9b9d4138cd30df6975d1390.bin 7KB
ddd94a6e65c74560e158e82723579d3a.bin 7KB
d9a895f3ea6f87fc806d42d30e231e92.bin 7KB
dfb9794cf95c31cf4990b2314616bcfc.bin 7KB
d2a5270c79841eafff49e398fb075593.bin 7KB
df3cda960828d85c2f044cf8bd5f22e0.bin 7KB
d13130117ec87d06080a72ac87fbf440.bin 7KB
d8b5b268b9ac68d30b13db2e4adc990d.bin 7KB
0e7997626820ca148fe6687eb452e6e6.bin 7KB
dff4901af8ea626bac427a561f0d8ff6.bin 7KB
d1178b5d05cca970ccae74fdae6ead4b.bin 7KB
de3a89550307d9876d547669d31c8e3b.bin 7KB
dcabb2df517aa0a1e077f858006d6406.bin 7KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
程皮
- 粉丝: 262
- 资源: 2568
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- HBuilder X.zip
- 基于C++开发的unreal 数字电路仿真+源码(毕业设计&课程设计&项目开发)
- Modeling_three_phase_inverter.slx
- 基于Vue+TypeScript开发的数字电路仿真软件+源码(毕业设计&课程设计&项目开发)
- 基于 Python Flask 的微博系统
- 深度学习训练数据转化脚本 实体检测
- 2.27 house of botcake例题附件
- 微信小程序-模仿知乎.rar
- 【飞桨AI实战】大作业:从0到1搭建一个图像识别系统
- 基于java+SSM开发的图书馆管理系统,包括图书查询+图书管理+图书编辑+读者管理+图书借阅记录+源码+数据库+开发文档说明
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功