欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于AOE网的演示系统设计和实现计算机科学与技术专业.docx

    • 资源ID:266993       资源大小:148.34KB        全文页数:27页
    • 资源格式: DOCX        下载积分:5
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要5
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于AOE网的演示系统设计和实现计算机科学与技术专业.docx

    1、目录第!.章综述(2)第1.1节本论文的背景和意义(2)第1.2节本论文的主要方法和研究进展(2)第1.3节本文的主要内容与难点(2)第2章程序设计(4)第2.1节面向对象的程序设计(4)第2.2节不同语言权衡选择(5)第3章AOE网(10)第3.1节概念解析(11)第3.2节算法(12)第4章代码实现(13)第4.2节程序工程构建(15)第4.3节程序设计流程与结果(15)第5章总结(17)致谢(18)关键词:AOE网、Java、面向对象、模拟内容提要基于AOE网的演示系统,是想方便与非专业人员观看演示,了解到AoE网工程节点的计算过程。AOE网常常用于工程问题,而工程人员对于算法程序常常不

    2、了解,通过编写可以便于非专业人员观看模拟整个工程进度过程。本文主要基于AOE网的计算算法,程序架构使用类MVC架构,用Java实现以天为单位的工程模拟。第1章综述1.1 本论文的背景和意义在现代化管理中,人们常用有向图来描述和分析一项工程的计划和实施过程,一个工程常被分为多个小的子工程,这些子工程被称为活动(Activity),在带权有向图中若以顶点表示事件,有向边表示活动,边上的权值表示该活动持续的时间,这样的图简称为AOE网。AOE网的演示,有助于人清楚AOE网最早开始时间ve和最晚完成时间vl的实现过程,便于非专业人员更加清晰的认识。1.2 本论文的主要方法和研究进展通过距离矩阵,用Ja

    3、va绘制相应的节点图形,建立定时器任务,模拟工程的每日进程。通过定时器模拟每天的发展,便于观看演示系统人员的清晰地了解到任务工程的进展。不需要深入了解1.3 本文的主要内容与难点本系统用Java实现,采用类MVC,视图view和控制control的交互将通过InodCl数据进行联系。初始化时基于节点之间的初始化距离矩阵,根据矩阵生产自定义的节点Point的model初始化。再根据初始化的节点数组,根据index索引绘制不同节点之间的水平角度与横纵坐标,重写JPaenl的paint,绘制点、线、相应的文字建立定时器任务与相应的原子操作函数,控制器主要负责天数的增加。相应的将会修改model的一系

    4、列参数。之后repaint,视图将根据model的变化而做出相应的改变。第2章程序设计1.1面向对象程序设计在计算机科学中,对象(英语:object),台湾译作物件,是一个存储器地址,其中拥有值,这个地址可能有标识符指向此处。对象可以是一个变量,一个数据结构,或是一个函数。是面向对象(ObjeCtOriented)中的术语,既表示客观世界问题空间(NameSPaCe)中的某个具体的事物,又表示软件系统解空间中的基本元素。在软件系统中,对象具有唯一的标识符,对象包括属性(Properties)和方法(Methods),属性就是需要记忆的信息,方法就是对象能够提供的服务。在面向对象(ObjectO

    5、riented)的软件中,对象(Object)是某一个类(Class)的实例(Instance)o概述:面向对象程序设计(英语:ObjeCt-Orientedprogramming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达

    6、给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。1面向对象编程具有以下优点:1 .易维护采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。2 .易扩展通过继承,我们可以大幅减少多余的代码,并扩展现有代码的用途;我们可以在标准的模块上(这里所谓的“标准”指程序员之间彼此达成的协议)构建我们的程序,而不必一切从头开始。这可以减少软件开发时间并提高生产效率;3 .模块化封装可以定义对象的属性和方法的访问级别,通过不同的访问修饰符对外暴露安全的接口,防止内部数据在不安全的情况下被修改。这样可以使程序具备更高的模

    7、块化程度,方便后期的维护和修改。同时,面向对象语言允许一个对象的多个实例同时存在,而且彼此之间不会相互干扰;4 .方便建模虽然面向对象语言中的对象与现实生活中的对象并不是同个概念,但很多时候,往往可以使用现实生活中对象的概念抽象后稍作修改来进行建模,这大大方便了建模的过程。(但直接使用现实中的对象来建模有时会适得其反)。2. 2不同语言权衡选择支持部分或绝大部分面向对象特性(类和实例、封装性、继承、多态)的语言即可称为基于对象的或面向对象的语言。面向对象的主流变成语言有Java、C#、C+等等。不同语言有不同的侧重点。Java适合服务器的开发、C#适合Window下的窗体开发,C+适合硬件底层

    8、的开发、VUe适合网页的开发等。因为最终计划实现的是桌面的exe格式的演示程序,因此考虑用JaVa和C#较为合适,权衡后,用JaVa实现。考虑到AOE网的演示是基于一些工程(视为点)和每个工程到下一个工程(视为带有权值的边)。第3章AOE网3. 1概念解析有向图中,用顶点表示活动,用有向边表示活动之间开始的先后顺序,则称这种有向图为Aov(AetiVityOnVertex)网络;AOv网络可以反应任务完成的先后顺序(拓扑排序)。在AOV网的边上加上权值表示完成该活动所需的时间,则称这样的AOV网为AOE(ActivityOnEdge)网,如下图:图3-1AOE路径图图中,顶点表示事件(能被触发

    9、两特征属性:最早发生时间Ve(j);最晚发生时间Vl(j),边表示活动(能被开始,两特征属性:最早开始时间e(i);最晚开始时间l(i),权表示活动持续时间,通常用AoE网来估算工程完成的时间两条原则:0只有某顶点所代表的事件发生后,从该顶点出发的各活动才能开始0只有进入某顶点的各活动都结束,该顶点所代表的事件才能发生AOE网(ACtiVityOnEdgeNetWork)是边表示活动的网,AOE网是带权有向无环图。边代表活动,顶点代表所有指向它的边所代表的活动均已完成这一事件。由于整个工程只有一个起点和一个终点,网中只有一个入度为0的点(源点)和一个出度为0的点(汇点)。相关时间的计算:(1

    10、)事件最早发生时间:即之前所有活动均完成所需的时间,由耗时最长的路径决定。具体判断时可以在直接前驱的最早发生时间+两者之间活动时间组成的集合中寻找最大值。(2)事件的最晚发生时间:事件的最晚发生时间以不影响工程最终完成时间为原则。源点(汇点)的最早发生时间和最晚发生时间相同。对与事件j的最晚发生时间可以采用:汇点的发生时间减去到j的最长路径来求得。(3)活动的最早开始时间:活动的的开始时间与事件发生时间相互联系,活动的最早发生时间为其起点事件的最早发生时间。(4)活动的最晚开始时间活动的最晚开始时间为其终点的最晚开始时间减去活动进行的时间。3. 2AOE算法首先,在AOE网中,从始点到终点具有

    11、最大路径长度(该路径上的各个活动所持续的时间之和)的路径为关键路径。计算关键路径,只需求出上面的四个特征属性,然后取e(i)=l(i)的边即为关键路径上的边(关键路径可能不止一条)。先来看看四个特征属性的含义:(1) Ve(j):是指从始点开始到顶点Vj的最大路径长度计算技巧:1从前向后,取大值:直接前驱结点的Ve(j)+到达边(指向顶点的边)的权值,有多个值的取较大者2首结点Ve(j)己知,为0如上图各顶点(事件)的Ve(j):(从Vl开始)顶点VSV2V3cVGV5/V6-V7pOp3/7-10计篁顺庠图3-2AOE的最早开始时间Ve计算(2) Vl(j):在不推迟整个工期的前提下,事件V

    12、j允许的最晚发生时间计算技巧:从后向前,取小值:直接后继结点的Vl(j)-发出边(从顶点发出的边)的权值,有多个值的取较小者;2终结点Vl(j)己知,等于它的Ve(j)如上图各顶点(事件)的Vl(j):(从V7开始,它的最早、最晚发生时间相同,都为10):顶点JVSV2.V3“V4一V5-V6V7“VlGP0,3p3,6/7,计算顺序图3-3AOE的最晚完成时间vl计算(3) e(i):若活动ai由弧CVk,vj表示,则活动ai的最早开始时间应该等于事件Vk的最早发生时间。因而,有:e(i)=ve(k);(即:边(活动)的最早开始时间等于,它的发出顶点的最早发生时间)如上图各边(活动)的e(i

    13、):边al(3卜a2(6a3(2卜a4(4卜a5(2)a6(ia7(3)表示,则ai的最晚开始时间要保证事件vj的最迟发生时间不拖后。因而有:l(i)=vG)-en(为边(活动)的到达顶点的最晚发生时间减去边的权值)如上图各边(活动)的l(i):边.al(3a2(6ha3(2卜a4(4a5(2卜a6(ia7(3卜a8(l)a4、a8、a9,即为关键路径上的边,所以关键路径有两条:a1a4a9和a2a8a9图3-6AoE的计算结果第4章代码实现4.1 程序解析(1) AOEPOint:代表工程的点。结合实际情况,有如下字段与方法。1)代表整数类型的X2)代表整数类型的y3)代表唯一的索引inde

    14、x4)代表最早开始时间的Ve5)代表最晚完成时间的Vl6)代表该工程顺序指向下一个工程点的完成天数计时的HashMap的CurrentTimeMap,key是工程节点的索引Index,VaIUe是已经完成的天数7)代表计算工程逆序指向之前工程的完成天数时间,便于反向计算Vl的VlTimeMap8)代表指向上一个工程的节点Map,key是AOEPoint,值是完成的天数9)代表指向下一个工程的节点Map,key是AoEPoin3值是完成的天数关键方法:1) islnvoke():Boolean判断该节点是否处于被激活状态(也就是之前导向该节点的节点们是否完成)2) addNext、removeN

    15、ext对于之前或下一个节点的指针添加与删除3) getNextlter得到对于下一个节点的迭代器4) getPrvToCurrentTime得到计算到前一个节点到该节点的工程完成进度5) getVe:得到该工程的最早开始时间6) isVlInvoke:计算VI时逆向判断节点是否处于激活状态。7) getX():得到绘图板上改点的横纵坐标(2) AOEStatic:各种默认参数,包含窗体大小,节点、边的绘制颜色。(3) AOEStart:启动的主函数类初始化JFrame面板,将AOETimerShow初始化,添加到JFrame中,显示。(4) AOETimerShOW:绘制工程节点的JPanel

    16、涉及视图的字段:1) dayAddButton:按钮、使得工程总天数增加一天2) autoddButton:设置是否程序自动演示增加天数3) resetButton:设置程序回到默认状态4) autoAddDay:在定时器任务中判断是否要自动添加工程总天数涉及数据的字段:1) distanceAr:n*n的矩阵,n个工程节点和其他工程节点的矩阵。对角线均为0,上三角为大于0的数据,下三角均为T表示不可达2) isNeedDraw:是否需要绘制工程节点到下一个工程节点的进度线3) aoePoint:根据diStanceArr初始化得到每个工程节点的AOEPoint数组4) result:保存最终

    17、计算完的AOEPoint4.2程序工程构建1.开发集成环境选择:IDEA。IDEA全称IntelIiJIDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,也是AES算法标准的主要竞争者,其安全性已经在国际密码年会上被证明。2.工程构建方式,采用MavenoMaven是一个项目管理工具,它包含了一个项目对象模型(ProjectObjectModel),一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(DePendCnCyManagementSystem),和用来运行定义在生命周期阶段(PhaSe)中插件(PIUgi

    18、n)目标(goal)的逻辑。当你使用MaVen的时候,你用一个明确定义的项目对象模型来描述你的项目,然后MaVen可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。Maven有一个生命周期,当你运行mvninstall的时候被调用。这条命令告诉Maven执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven运行了许多默认的插件目标,这些目标完成了像编译和创建一个JAR文件这样的工作。此外,MaVen能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。传统依赖Jar包,需要自己从网上下载Jar文件配置路径到工程中,这样很不方便不同机

    19、械间的代码共享。通过配置pom.xml文件,可以很方便得管理和添加需要的Jar依赖文件。使得其他电脑上gitclone代码后可以很方便自动下载需要的Jar文件。如需要,可以配置自己的MaVen私服,将自己常用的Jar上传到私服,便于工程的开发使用。传统的工程需要不断迭代,IIIaVen支持版本标识,可以更方便工程的迭代。4.3程序设计流程结果构造树的基本想法是随着树深度的增加,节点的端迅速地降低。燧降低的速度越快越好(即信息增益越大越好),这样我们有望得到一棵高度最矮的决策树。选择的特征有:(确定数字图像为20*20),卷积归一化图像大小后,选取像素点数量占比、划分区域树木、划分较大区域的数目

    20、等。对于训练集图像分别计算想要的数值,作为一个向量,计算出燧最小的决策树。1)初始化:根据距离节点生成AoEPoint的初始化数据。2)绘制:计算坐标点,默认数+组第一行是第一个工程节点和其他节点的可达距离。默认每个工程节点到可指向的多个工程节点的角度为30,默认偏移是30。第一个工程节点的坐标采用自定义的默认值,设定一天为最小时间单元。根据工程节点到下一个节点的需要天数(一天为一个单位距离)和夹角,依次得到其他工程节点。3)JaVa的代码绘制:重写JPenI的Paint(GraPhiCSg)。遍历所有节点,绘制工程节点,并且以指向的两个节点间绘制直线。在直线中间绘制说明位置。图4-1AOE的

    21、初始化4)开启工程,自动(或点击相应的button)增加天数,推动工程5)当工程天数增加时,需要更新每个节点。a)每个工程节点与下一个工程节点的完成时间。b)判断工程节点是否处于激活。如果没有那么忽视c)因为工程启动是需要前置节点都处于激活状态。如果前置的工程节点都未激活,忽视。如果前置的工程节点存在未激活的或者天数未达到完成天数(既小于相应边的数值)时,该工程节点需要等待这些的完成,而那些已经激活并完成了指定工程天数的前置节点进入等待状态d)如果前置工程节点均已激活且完成需要的工程天数,那么该节点设置为激活状态图4-2AOE的开始演示计算6)绘制进度:对于每个工程节点之间,根据工程的完成时间

    22、需要前置节点处于激活状态),在原本指向的直线上再绘制更加醒目的线,表示该工程流程的完成进度。7)计算最早开始时间Ve.因为以一天为最小时间单元进行工程的模拟,所以当节点处于激活(也就是前置工程节点均激活且完成了),其天数即为最早开始时间Veo或者即为max(Ve前置节点i+D前置节点i到该节点的工程天数)i=l,2n8)准备计算VI:当所以节点均处于激活状态,既全部Ve计算完成,即可计算VI,需要计算的话,设置VIInVokC为true,程序将开始计算。抽象化简化Vl计算过程,视为反向计算Ve图4-3AOE的Ve计算完毕9)初始化Vl的数据,将最后一个节点视为计算Vl的第一个节点,其Ve=V

    23、1。“反向”增加工程天数(和Ve的计算和绘制基本相同)。当节点处于Vl激活状态时,其天数减去最大Ve,即为最晚开始时间,即为InaX(Vl指向节点-D到指向节点i的距离)10)根据指向节点到节点的Vl完成时间(逆向完成时间),绘制进度线和判断激活状态,直到全部完成。图4-4AoE的开始计算VI11)数据显示:a)当计算出Ve时在节点上绘制Ve的值b)当计算出VI时在节点上绘制VI的值c)计算完毕后得到关键路径,显示在输出文本框中12)利用随机数生成正整数的上三角矩阵(考虑到绘制屏幕有大小限制,不宜过多过大),将其对象线设置为0(表示工程节点到自身的完成天数为0),将下三角部分设置为T,表示不可

    24、达,因为工程只可能是单向的,避免了双向的依赖一两个工程都需要对方先完成才能执行,避免死锁。4.4工程打包使用maven的launch4j插件进行构建打包,通过配置加载主类等,执行mvncleanpackage将工程打包成exe文件。第五章总结这次毕业课题的设计包括毕业论文的写作AOE网演示系统的开发以及与此相关的技术。通过毕业设计,我对应用软件的开发过程有了详细的理解,并把书中的理论运用到了实践中。相信这对我以后的工作学习将具有重要意义。在这次毕业设计的整个过程中,我有以下几点体会:D一定要做好规划2)理论与实践相结合3)编程语言类的相通性4)不断反思,不断修改,才有不断的进步5)虚心向老师,

    25、同学请教,培养团队精神,协作能力6)通过学习,交流,看到别人的优点,发现自己的不足,争取进一步完善自己参考文献1郑诚.数据结构导论M.外语教学与研究出版社,2012附录1.绘制与计算类packageAOEShow.JFrame;import用于说明会用到哪些类别importAOEShow.AOEStatic;importAOEShow.AOETooI;importAOEShow.Model.AOEPoint;importjava.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.Acti

    26、onListener;importjava.util.*;importjava.util.List;*CreatedbyUKi_Hion2018/4/29.VpublicclassAOETimerShowextendsJPanelprivateButtondayAddButton;privateButtonresetButton;privateButtonautoAddButton;privatebooleanautoAddDay=false;boolean是赋值privateintdistanceArr=0,3,2,6,-l,-l,-l,-1,Qj-1,2,4,-1,-1,-l,-l,0,l

    27、l,3,-l,-l,-1,-1,1,-1,-1,-l,-1,-1,-1,0,-1,3),-l,-l,-l,-l,-l,0,4,-l,-1,-1,-1,-1,-1,0,;booleanisNeedDrav=true;privateAOEPointaoePoints;privateAOEPointresult;publicAOEPointgetPointByIndex(intindex)for(inti=0;iaoePoints.length;i+)if(aoePointsi.getlndex()=index)returnaoePointsi;)returnnull;)publicAOETim

    28、erShowO/init节点this.aoePoints=AOETool.initPoint8y4rr(distanceArr);/创建定时器任务/添加一个buttondayAddButton=newButton(nextday);dayAddButton.addActionListener(newActionListenerOpublicvoidactionPerformed(ActionEvente)addOneDay(););this.SetLayout(newBorderLayoutO);/this.add(dayAddButton,BorderLayouttSOUTH);resetB

    29、utton=newButton(,reset);resetButton.addActionListener(newActionListenerOpublicvoidactionPerformed(ActionEvente)reset(););autoAddButton=newButton(auto);autoAddButton.addActionListener(newActionListenerOgOverridepublicvoidactionPerformed(ActionEvente)autoAddDay=SautoAddDay;);JPaneljPanel=new3Panel();j

    30、Panel.setLayout(newFlowLayout(FlowLayout.LEFT,IQ,20);jPanel.add(dayAddButton);jPanel.add(resetButton);jPanel.add(autoAddButton);this.add(jPanel,BorderLayout./VORTH);java.swing.Timertimer=newjavax.swing.Timer(1000jnewActionListenerOpublicvoidactionPerformed(ActionEvente)if(autoAddDay)addOneDay(););ti

    31、mer.start();)privatevoidreset()this.aoePoints=AOETooI.initPointy4rr(distanceArr);isNeedDraw=true;/this.aoePoints=resuLt;repaint();)publicvoidaddOneDay()/TODO拆分/TODO只有当invoke变化时,才停止(自动演示的时候)booleanisAHInvoke=true;for(inti=0;iaoePoints.lengthji+)if(!aoePointsi.islnvoke()isAHInvoke=false;break;if(isAHI

    32、nvoke)/保存结果result=aoePoints;isNeedDraw=false;calVl();)第一个激活的是7e,最早开始时间,第二个激活的是:最晚开始时间Vl.从前往后先算最早开始时间/TODObugIgetCurrentTtme被多条线共用了。而且因为图,每次QetCurrentTime被多加了for(inti=0;iaoePoints.length;i+)Iteratoriter=aoePointsi.getNextIter();while(iter.hasNext()AOEPointnextPoint=(AOEPoint)iter.next();intday=aoePoi

    33、ntsi.getNextDayByIndex(nextPoint.getlndex();/如果两点均为激活,跳过在基础上再绘制一条完成状态线,如果是非激活才行if(aoePointsi.islnvoke()if(!nextPoint.islnvoke()/TODOInVOhe用图像方式计算、Ve更偏算法计算if(nextPoint.getPrvToCurrentTime(aoePointsi.getlndex()=day-l)(nextPoint.SetPreToCurrentTime(aoePointsi.getlndex(),nextPoint.getPrvToCurrentTime(ao

    34、ePointsi.getlndex()+1);)/更新状态/应该是根据每个点,通过工ndex获取到导向的点判断DQyCurrentTIme是不是相同,全相同才设为激活isAHInvoke=true;for(inti=0;iaoePoints.lengthji+)AOEPointaoePoint=aoePointsi;MapCurrentTimeMap=aoePoint.getCurrentTimeMap();Iteratoriterator=currentTimeMap.keyset().iterator();intSize=CurrentTimeMap.size();while(iterat

    35、or.hasNext()intindex=(Integer)iterator.next();AOEPointprv=getPointByIndex(index);if(!prv.islnvoke()prv.getVe()=0;i-)Iteratoriter=aoePointsi.getPrvIter();while(iter.hasNext()AOEPointprvPoint=(AOEPoint)iter.next();intday=prvPoint.getNextDayBylndex(aoePointsi.getlndex();/如果两点均为激活,跳过/在基础上再绘制一条完成状态线,如果是非

    36、激活才行if(aoePointsi.isVHnvoke()if(IprvPoint.isVHnvoke()if(aoePointsi.getToPrvVlTime(prvPoint.getIndex()=day-l)aoePointsi.setToPrvVlTime(prvPoint.getlnde(),aoePointsi.getToPrvVlTime(prvPoint.getlndex()+1);)for(inti=0;iaoePoints.length;i+)Iteratoriter=aoePointsi.getNextIter();booleanisAHInvoke=true;whil

    37、e(iter.hasNext()AOEPointnextPoint=(AOEPoint)iter.next();intday=aoePointsi.getNextDayByIndex(netPoint.getlndex();if(nextPoint.isVHnvoke()if(!aoePointsi.isVHnvoke()if(nextPoint.getToPrvVlTime(aoePointsi.getlndex()=day)intmin=Math.min(nextPoint.getVl()-day,aoePointsi.getVl();aoePointsi.setVl(min);elseI

    38、sAllInvoke=false;)elseisAHInvoke=false;)if(isAllInvoke)/TODO这里需要停止,或者输出状态aoePointsi.setVlInvoke(true);)/privateListList=newArrayList();gOverridepublicvoidpaint(Graphicsg)super.paint(g);绘制点,定制定时器paintPoint(g);)privatevoidpaintPoint(Graphicsg)根据矩阵绘制点for(inti=0;iaoePoints.lengthji+)intx=aoePointsi.get(

    39、);inty=aoePointsi.getY();Colorcolor;if(aoePointsi.islnvoke()color=AOEStatic.InvokePointCoLor;elsecolor=AOEStatic.DeuLtPointCotor;if(aoePointsi.isVHnvoke()color=AOEStatic.VLlnvokePointCoLor;/绘制实心点g.setColor(color);g.fillval(,y,AOEStatic.DefauLtRadius*2,AOEStatic.DefauLtRadius*2);绘制文字g.setcolor(Color.

    40、MCK);gdrawString(,V+aoePointsi.getlndex(),+54y-10);/绘制VEif(aoePointsi.islnvoke()g.setcolor(Color.LCK);gdrawString(Ve:+aoePointsi.getVe(),+5,y-25);)if(aoePointsi.isVHnvoke()/绘制”g.setcolor(Color.SLXICK);g.drawString(,Vl:,+aoePointsi.getVl(),x+5,y-40);)/绘制每个点与下一个点之间的线Iteratoriter=aoePointsi.getNextIter

    41、);while(iter.hasNext()AOEPointnextPoint=(AOEPoint)iter.next();g.setcolor(MEStatic.DefOuLtLineCoLory);intl=aoePointsi.getX()+AOEStatic.DefauLtRadius;intyl=aoePointsi.get(y)+MEStatic.DefauLtRadius;int2=nextPoint.getX()+AOEStatic.DeuLus;inty2=nextPoint.getY()+AOEStatic.DefauLtRadius;g.drawLine(xl,yl,2

    42、y2);g.fillOval(int)(x2-(2-xl)*0.1)-5,(int)(y2-(y2-yl)*0.1)-5,10,10);绘制文字g.setcolor(AOEStatic.DefauLtStringCotor);intday=aoePointsi.getNextDayBylndex(nextPoint.getlndex();g.drawString(day:+day,(xl+x2)2-154(yl+y2)2);/在基础上再绘制一条完成状态线,如果是非激活才行if(aoePointsi.islnvoke()/是不是一直需要绘制蓝色的/if(InextPoint.islnvoke()11)if(isNeedDraw)/index:4xl:208yl:3272:260y2:570currentTime2dayl因为一条线上刚开始,另一条线的CUrrentTtme不为0,导致的intx22=(int)(xl+(x2-xl+0.0)*nextPoint.getPrvToCurrentTime(aoePointsi.getIndex()day);inty22=(int)(yl+(y2-yl+0.0)*nextPoint.getPrvToCurrentTime(aoePointsi.getIndex()day);g.setcolor(AOEStatic.InvoZeeL


    注意事项

    本文(基于AOE网的演示系统设计和实现计算机科学与技术专业.docx)为本站会员(peixunshi0)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!




    宁ICP备18001539号-1

    三一文库
    收起
    展开