java 鱼刺图_使用java实现鱼刺图

刚毕业了,这是毕业设计的java web项目中的一个功能,使用鱼刺图进行辅助管理,在做的过程中,没有找到国内有公开的研究资料,不管是哪一种语言,所以就自己做了一个java的鱼刺图生成插件,虽然毕业设计做完了,不过这个程序就像自己的孩子一样,还有很多可以完善的地方,舍不得停止,也就还在继续优化下去,在做这个程序的时候,先是使用了一种比较粗糙的思想去实现生成鱼刺图,虽然也可以生成,但是生成的图和实现算法都过于粗糙,因此仅在毕业论文中提及,在本文中不打算介绍,本文将介绍本人目前刚完成的实现算法,为有需要的人提供一些参考。

目前的实现算法中,使用了栈的思想来进行实现。使用该算法思路如下(该算法初始设定为所有“鱼刺”可以按任意顺序存入链表中):

1)将初始的顺序结构“鱼刺”链表转换为树结构“鱼刺”链表;

2)计算各个“鱼刺”文本块像素大小;

3)将树结构“鱼刺”树按顺序压入栈中;

4)从栈顶开始遍历,如果当前“鱼刺”的“子鱼刺”数为0,则将该“鱼刺”像素大小赋值为最小的像素大小,如果当前“鱼刺”的“子鱼刺”数不为0,则遍历其所有“子鱼刺”,按照相应的规则计算所有“子鱼刺”像素大小之和,再将该像素值设为当前“鱼刺”像素大小;

5)从 “鱼刺”树顶端(即鱼刺图主骨)开始遍历,按照其所处层级的奇偶判断、像素大小及相应的规则计算该“鱼刺”的终点坐标、文本块坐标,并作图;

6)若当前“鱼刺”的“子鱼刺”数不为0,则按照一定的规则计算其“子鱼刺”的起点坐标,通过迭代遍历整个“鱼刺”数,完成鱼刺图。相比于基于鱼刺图基本属性的生成算法,该算法仅需五步即可完成作图,同时,在该算法中,在计算“鱼刺”块大小的时候,无需计算任何多余的数据,最终的作图算法除了依赖于“鱼刺”树以外,没有依赖于其它的任何数据。

以上这些步骤是在毕业论文中摘出来的,在目前最新的实现中,除了以上的步骤,还加入了一个可选的步骤,就是自动调整图片像素大小,实现这个可选步骤是因为在毕设的项目中,要求将鱼刺图放入网页中,为了使网页好看点,要对鱼刺图的大小进行控制,因此,实现了这个自动调整的步骤,用来控制像素,具体实现步骤如下:

1)在鱼刺图的抽象分配算法中,将鱼刺间的间距和字体大小都使用相应的变量代替,在调整程序中,根据相应的变量,指定相应的步长变量,并可设置误差范围,当像素达到了和目标像素的差距已经在误差范围中的时候,会停止调整程序的执行;

2)调整程序启动之后,会根据水平和垂直两个方向的像素和目标的像素的大小比较进行间距的增减,增减完之后,执行上述第四步。

在该调整程序中,不保证一定能调整到用户期待的像素,毕竟用户期待的像素带有大量的主观因素,而鱼刺图的实际像素有诸多约束条件。

这个程序只是我个人的一个浅薄的实现,可以结合数据库使用,还有诸多不足和可优化的地方,各位读者有任何意见都可以向我提出,我会根据大家的建议继续去优化,以下是一张目前最新实现的生成图。

2d7a398141f61afd14070846065e1484.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/256116.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

燃尽图,甘特图,鱼骨图

1. 燃尽图 燃尽图(burn down chart)是在项目完成之前,对需要完成的工作的一种可视化表示。燃尽图有一个Y轴(工作)和X轴(时间)。理想情况下,该图表是一个向下的曲线,随着…

1500_什么是鱼骨图以及鱼骨图如何使用

全部学习汇总: GreyZhang/g_project_management: some knowledge about project management. (github.com) 鱼骨图在过去多年的工作中我是看到过的,但是相关的工作中其实一直没有接触到。我所遇到的问题,一般也不到了需要总结分析的程度。这对…

如何有效理清对象间逻辑关系?XMind鱼骨图帮你轻松搞定!

从效果开始,鱼骨图的每个分支都代表问题的一个原因。主分支显示所有可能的原因,而子分支则在背后挖掘“为什么”。因此,鱼骨图也被称为“因果图”。 鱼骨图有何用呢? 鱼骨图是逻辑图的派生。他们看起来很相似。鱼骨是分析问题的思…

大咖驾到!5A学霸教你如何使用鱼骨图解决项目难题

在船舶制造行业从业9年,并以5A的好成绩完美通过PMP考试的学霸来了! 小编今天邀请到了1903级的学员刘艺为大家讲解鱼骨图在实际生活中的应用,来跟着我们一起学习用鱼骨图来分析项目运行过程中出现的问题吧。 个人介绍 INTRODUCTION 我所在…

质量工具之鱼骨图

云质QMS原创 转载请注明来源 作者:王洪石 1. 什么是鱼骨图 鱼骨图,因其形状如鱼骨,所以叫鱼骨图(以下称鱼骨图)。由日本管理大师石川馨先生所发明,故又名石川图。,它是一种透过现象看本质的分析…

鱼骨图介绍及制作

鱼骨图 什么是鱼骨图 鱼骨图是一种图表,用来展示分支关系或流程。它通常以中心为起点,由中心向外延伸出若干条脊梁,再由脊梁连接相关的分支,形成一个树状结构。鱼骨图常用于解释流程、组织结构、产品规划等。 下面列举一个例子: 如…

视频剪辑工具,批量处理视频中的声音,教你添加新音乐

拍摄好或者收集好的一些视频素材,可能需要进行剪辑,那么该如何对视频中的声音去色,并添加新的音乐呢?或者在不声的基础上加上背景音乐呢?下面随小编一起来试试,希望能给大家带来帮助。 需要哪些工具&#…

如何剪辑音频,音频剪辑的简单操作

怎么剪出自己喜欢的一段音频,我们在网上下载下来的片段,怎么将它剪辑出一段独特的音乐。很多视频片段里的音频会出现几段不一样的音乐,是将一段音乐剪辑下来一小段,再将它们放在视频上。其实,有时候我们会发现&#xf…

PR卡点插件 Premiere自动卡点自动剪辑插件 音乐鼓点节拍插件BeatEdit v1.0.10.2+使用教程

BeatEdit是一个音乐鼓点节拍自动剪辑扩展插件,这款插件可以自动检测音频文件根据音乐的节拍鼓点生成时间线,然后选择需要剪辑的素材,自动完成剪辑工作,还可自动/手动选择鼓点位置,编辑开始位置,让剪辑变得简…

音乐剪辑软件哪个比较好用?

电脑上怎么剪辑音乐?一般想要对音乐进行剪辑,在电脑上操作是比较方便的。音乐可以是一首歌曲,一段录音,剪辑音乐就是剪辑音频,剪辑的目的就是把需要的片段截取出来,那么如何截取音乐中的一段或者多段&#…

第三章 添加背景音乐与音频剪辑

​第三章 添加背景音乐与音频剪辑 3.1为视频添加音乐的方法 音乐是短视频的重要组成部分之一,一段适合视频的音乐能为视频锦上添花,本节主要讲解添加背景音乐的多种操作方法。 3.1.1给视频添加背景音乐 VESDK Deluxe APP中有多种音乐类型&#xff0c…

网易云音乐怎么剪辑音乐并保存,酷狗音乐怎么截取一段音乐并保存

我们在使用音乐软件播放音乐时,听到好听的歌曲会将其下载保存到本地。但是通过音乐软件下载的歌曲多是整首音乐,若是我们需要其中的一部分,就需要用到专业的音频编辑软件了,那么下面就来给大家介绍网易云音乐怎么剪辑音乐并保存&a…

这篇文章教你如何音频剪辑制作,快学起来

当我们的视频剪辑完好,通常会给它加入一些背景音乐,从而来增添整体内容的趣味性。然而我们想要添加的音频经常只是歌曲的一个片段,如果将整首歌曲导入,可能在视频结束的时候还没有播放到想要的歌曲片段。那有什么好的办法可以解决…

如何通过抖音剪辑热门音乐,每天赚1000元,适合新手操作。

其实很多人都知道玩抖音能赚钱,但不知道怎么去入行。 就拿音乐号来说吧,只需要把你喜欢的音乐下载下来,配上视频画面,上传到抖音就可以了。 操作的好,一个月几万块很正常,而且是属于长期正规网络兼职项目…

视频剪辑配乐技巧 视频剪辑配音推荐

视频是视觉加听觉的艺术,视频的背景音乐不同,所呈现的效果也不同。接下来为大家带来大家视频剪辑配乐技巧,视频剪辑配音推荐的相关内容。 一、视频剪辑配乐技巧 视频剪辑时选好了配乐,视频就成功了一半。那如何找到合适的配乐呢…

C#,码海拾贝(29)——求解“大型稀疏方程组”的“全选主元高斯-约去消去法”之C#源代码,《C#数值计算算法编程》源代码升级改进版

大型稀疏矩阵线性化方程组的数值求解问题 广泛存在于工程实践尤其是计算机仿真领域 如水力管网计算,电力系统的大型导纳矩阵计算,高阶偏微分方程的数值求解,以及铸件充型过程与凝固过程的数值模拟等。 经常出现在科学和工程计算中, 因此寻找稀…

maya超大图分区渲染

需求 使用maya 一般是用来渲染影视动画,分辨率一般是1080P,2k,或者4K。有时候渲染的图片会用来做海报等打印使用,需要渲染一些超大图,虽然maya支持8K的渲染输出。 但是由于内存等限制,低配电脑往往出现“/…

Maya灯光【电影级灯光渲染-基础光】

平行光: 1、色温(一般白炽灯色温是8000): 2、Exposure: 调整幅度大, 3、idensity: 强度变化更柔和 4、angle(太阳光本来是平行光,因为空气中含有灰尘颗粒,导致照射过…

手机安卓Termux搭建Hexo博客网站,发布公网访问

文章目录 1. 安装 Hexo2. 安装cpolar内网穿透3. 公网远程访问4. 固定公网地址 转载自cpolar极点云的文章:安卓手机使用Termux搭建Hexo个人博客网站【内网穿透公网访问】 Hexo 是一个用 Nodejs 编写的快速、简洁且高效的博客框架。Hexo 使用 Markdown 解析文章&#…

maya计算机内存不足请保存,Maya渲染时提示内存不足的六种解决办法

在maya渲染时,由于我们的场景文件过于复杂,或者材质复杂以后,可能导致无法启用高质量的渲染工作,这个时候,我们就需要做一些合适的处理,以保证渲染工作的正常进行,通过此经验,分享给…