【第三组】用例+功能说明+技术说明
场景:
一个富有创造力的玩家想要绘制自己喜欢的图形。
背景:
(1)典型用户:Mondrian
(2)用户的需求/迫切需要解决的问题:
用户可以得到自己想要画的图形;
用户需要应用为其提供绘画工具;
用户需要应用为其保存其“大作”。
(3)假设:
用户可以凭借自己的意愿作画,不需要系统辅助;
用户已经掌握应用中freestyle模式工具的使用。
场景:
Mondrian今天在玩游戏时突发奇想,想要模仿高斯的壮举,实现尺规画正十七边形。于是他进入了freestyle模式,选择了直线和圆工具进行绘画,他通过数学资料和自己的设计构想,最终实现了尺规作正十七边形的壮举,他骄傲的保存了自己的“大作”方便以后向朋友们炫耀。
用例文档:
标题:使用freestyle模式绘制用户想要的图形
角色:用户(Mondrian)
主要成功场景:
Mondrian今天在玩游戏时突发奇想,想要模仿高斯的壮举,实现尺规画正十七边形。于是他进入了freestyle模式,选择了直线和圆工具进行绘画,他通过数学资料和自己的设计构想,最终实现了尺规作正十七边形的壮举,他骄傲的保存了自己的“大作”方便以后向朋友们炫耀。
步骤:
1.打开进入Geomystery软件;
2.点击菜单栏“freestyle”按钮,进入freestyle模式;
3.使用左侧系统提供的工具在屏幕中间的画布上进行绘画;
4.使用点工具画点;
5.使用直线工具画线;
6.使用圆工具画圆;
7.交替使用三种工具,完成绘画;
8.点击保存,将用户绘制的图形保存在本地,或点击放弃,不保存并留在当前页面;
9.点击左上角的返回按钮,返回主界面。
扩展场景:
因为找不到保存路径等原因导致图片保存失败;
当用户恶意使用导致画面被占满后无法继续绘制。
功能说明书:
功能:通过使用freestyle绘制用户的目标图形
使用:
1.打开进入Geomystery软件;
2.点击屏幕中部右侧的菜单栏中的“freestyle”按钮,进入freestyle模式;
3.使用左侧系统提供的工具在屏幕中间的画布上进行绘画;
4.点击选择左侧工具栏的点工具,使用点工具画点;
5.点击选择左侧工具栏的直线工具,使用直线工具画线;
6.点击选择左侧工具栏的圆工具,使用圆工具画圆;
7.交替使用三种工具,完成绘画;
8.点击保存,将用户绘制的图形保存在本地,保存成功后停留在当前页面,或点击放弃,不保存并留在当前页面;
9.点击左上角的返回按钮,返回主界面。
技术说明书:
对于一个带显示的与用户交互的系统,通常可以分成模型(Model)视图(View)和控制器(controller)三个部分,MVC架构好好在把一个整体分开,方便设计,修改,测试。
因为每一个模型元素都有一个或有多个视图,所以模型中需要记录自己的多个视图,视图中也需要记录自己是哪个模型的视图,即双向绑定。
依赖是一种复杂的关系,举例来说:一个点在直线上是一种简单的依赖,这种依赖是一对一的,显然当直线被删除时,点就不再存在。因为直线不允许重合,所以两个相交直线必有一个交点,而这个交点依赖这两条直线,这种依赖是一对二的,当交点依赖的其中的一条直线被删除了,那么交点也不存在了。
所以点需要记录自己定义了谁,影响了谁,依赖于谁;线要记录自己的定义方式,定义点,线上的点数组。这也是一种双向绑定。
当坐标系变换、模型对应、模型依赖关系都有双向绑定的时候,虽然MVC被分成了三个部分,但是仍然是一个可以操纵的整体。
以上是对于游戏引擎的一个综合阐述,下面介绍对于freestyle模式来说所需的具体的技术实现:
A.点工具:启动自动机DFA,确定点工具所需要接受的信息(一组坐标),根据用户在画布convas上的点击,来标记用户当前选择的点的坐标并将其传入DFA,随后由DFA触发draw事件屏幕上显示这个点。并有controller确定其是否有依赖关系等,并将其存储在表中。
B.线工具:启动自动机DFA,确定点工具所需要接受的信息(两组坐标),根据用户在画布convas上的点击,来标记用户当前选择的点的坐标并将其传入DFA;再根据用户在画布convas上的点击,来标记用户当前选择的点(第二个点)的坐标并将其传入DFA;随后由DFA在屏幕上显示这条线。随后由DFA触发draw事件在屏幕上显示这个点。并有controller确定其是否有依赖关系等,并将其存储在表中。
C.圆工具:启动自动机DFA,确定点工具所需要接受的信息(两组坐标),根据用户在画布convas上的点击,来标记用户当前选择的点的坐标并将其传入DFA;再根据用户在画布convas上的点击,来标记用户当前选择的点(第二个点)的坐标并将其传入DFA;随后由DFA触发draw事件在屏幕上显示这个圆。并有controller确定其是否有依赖关系等,并将其存储在表中。
转载于:https://www.cnblogs.com/liminglun/p/7224567.html
【第三组】用例+功能说明+技术说明相关推荐
- 流量卡之家:三个用例可以帮助消除制造商对AI功能的疑虑
在最近一项关于人工智能的制造业实际调查中,44%的汽车和制造业受访者认为AI在未来五年内对制造业的"非常重要",而近49%的人表示是"成功的关键." 制造商实际 ...
- 扩增子图表解读7三元图:三组差异数量和关系
点击上方蓝色「宏基因组」关注我们!专业干货每日推送! 背景介绍(Introduction) 宏基因组学 宏基因组学目前的主要研究方法包括:16S/ITS/18S扩增子.宏基因组.宏转录组和代谢组,其中 ...
- origin三元相图_扩增子图表解读7三元图:三组差异数量和关系
点击上方蓝色「宏基因组」关注我们!专业干货每日推送! 背景介绍(Introduction) 宏基因组学 宏基因组学目前的主要研究方法包括:16S/ITS/18S扩增子.宏基因组.宏转录组和代谢组,其中 ...
- 比较两组数据的差异用什么图更直观_扩增子图表解读7三元图:三组差异数量和关系...
点击上方蓝色「宏基因组」关注我们!专业干货每日推送! 背景介绍(Introduction) 宏基因组学 宏基因组学目前的主要研究方法包括:16S/ITS/18S扩增子.宏基因组.宏转录组和代谢组,其中 ...
- [答疑]业务序列图推导出系统的三个用例注册SIM卡、申请激活、审核激活申请
软件方法(下)分析和设计2021版本连载-第8章 分析类图(1)>> 勤瘦(216***56) 10:29:41 从业务序列图推导出系统的三个用例注册SIM卡.申请激活.审核激活申请 勤瘦 ...
- MPB:青岛大学苏晓泉组-全球微生物组整体结构和功能的搜索
为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...
- 解读三组容易混淆的Dockerfile指令
长话短说,今天分享三组容易混淆的Dockerfile指令, 帮助大家编写更优雅的Dockfile文件.构建更纯净的Docker镜像. COPY vs ADD COPY.ADD主体功能类似:从指定位置 ...
- js实现日历框上一日下一日_一日三项令人兴奋的Lucene功能
js实现日历框上一日下一日 昨天是富有成效的一天:突然,Lucene有了三个令人兴奋的新功能. 表达式模块 昨天提交的第一个功能是新的expressions模块 . 这使您可以使用任意String表达 ...
- 一日三项令人兴奋的Lucene功能
昨天是富有成效的一天:突然,Lucene有了三个令人兴奋的新功能. 表达式模块 昨天提交的第一个功能是新的expressions模块 . 这使您可以使用任意String表达式定义用于排序的动态字段. ...
最新文章
- Android优化五:布局优化
- VScode 乱装插件环境破坏踩坑自我反思总结
- C语言从文件中读入矩阵,并且将矩阵转置
- 2018android wear手表,谷歌正开发三款智能手表 Wear OS系统逐步脱离Android范畴
- js 获取字符串最后一位的4种方法
- LeetCode283——Move Zeroes(将0移动到数组最后面)
- 三招让你成为vue.js大师
- 激光雷达原理及发展现状
- 读《卧底经济学》有感
- html有序列表序号字体大小,css – 对不同字体大小的排序列表编号进行样式化
- 如何下载 TI 公司的官方例程以及为用户写好的标准头/源文件
- 无模型预测控制(model-free predictive control)+ESO
- OpenCV基于Python霍夫圆检测—基于梯度的霍夫圆检测
- ON DUPLICATE KEY UPDATE 作用及一句SQL实现批量修改
- Unity Shader入门精要学习笔记 - 第14章非真实感渲染
- jav: bigInteger
- [Codewar练习-javac++]Twice linear(双线性)
- 网易dns劫持检测,dns被劫持检测方法有哪些?
- 显卡风扇狂转的解决方案
- 终极RPA术语表:机器人流程自动化的基础概念
热门文章
- oauth2 单点登录_Spring Security Oauth2和Spring Boot实现单点登录
- Flutter开发之ListView添加HeaderView和FooterView(38)
- Hbuilder Android证书申请
- vue 打印 canvas 显示空白
- Expanded, SingleChildScrollView, CustomScrollView, container, height, width
- springboot 利用configureMessageConverters add FastJsonHttpMessageConverter 实现返回JSON值 null to ...
- CF 19D Points 【线段树+平衡树】
- delphi SAP
- JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法
- 窗口缩放导致页面排版错乱的解决方法