Jgraphx学习笔记
- 格式:docx
- 大小:122.35 KB
- 文档页数:21
JRuleEngine学习总结高广林 2010-12-13这两天学习了一下规则引擎,选择使用JRuleEngine用于实际的应用,简介说明和规则引擎的原理说明请“Google一下”,总结一个文档,希望您对JRuleEngine的使用能更快的上手。
---------------------------------------我--是--废--话--和--正--文--的--分--割--线----------------------------------1、定义XML规则文件规则可以通过如下的两种方式加载:(1)通过XML文件进行加载(2)通过向方法LocalRuleExecutionSetProvider.createRuleExecutionSet中传入一组RuleImpl类型的参数。
2、规则定义的形式(1)名称(name)(2)描述(description)(3)一组判定对象,定义形式:"leftTerm" ["operator" "rightTerm"]。
所有的判定通过AND操作符进行连接。
如果判定以"leftTerm" "operator" "rightTerm"的形式出现,那么在左右参数之间的连接符可以是"=", "<>", "contains", "notcontains","containsatleastone", "notcontainsanyone", "<", ">", "<=", ">=",其中的最后四个仅在数值型参数中使用。
jgraphx例子jgraphx是一款Java图形库,可以用于绘制和编辑图形。
以下是一些jgraphx的示例:1. 绘制一个矩形:mxCell rectangle = new mxCell();mxGeometry geometry = new mxGeometry(0, 0, 100, 100);rectangle.setGeometry(geometry);rectangle.setStyle('shape=rectangle');2. 绘制一条连接线:mxCell line = new mxCell();mxGeometry geometry = new mxGeometry(0, 0, 0, 0);line.setGeometry(geometry);line.setStyle('shape=connector');line.setTerminal(new mxCell(), true);line.setTerminal(new mxCell(), false);3. 绘制一张流程图:mxGraph graph = new mxGraph();Object parent = graph.getDefaultParent();graph.getModel().beginUpdate();try{Object start = graph.insertVertex(parent, null, 'Start',20, 20, 80, 30, 'shape=ellipse');Object task1 = graph.insertVertex(parent, null, 'Task1', 120, 20, 80, 30);Object task2 = graph.insertVertex(parent, null, 'Task2', 220, 20, 80, 30);Object end = graph.insertVertex(parent, null, 'End', 320, 20, 80, 30, 'shape=ellipse');graph.insertEdge(parent, null, 'Start->Task1', start, task1);graph.insertEdge(parent, null, 'Task1->Task2', task1, task2);graph.insertEdge(parent, null, 'Task2->End', task2, end); }finally{graph.getModel().endUpdate();}这些示例只是jgraphx的冰山一角,您可以通过阅读jgraphx文档和尝试更多代码来发掘更多功能。
JGraph经典常见问题解答(FAQ)怎样打开/保存基于 XML 的文件格式?在新 SDK 中提供了读写XML 文件的内建支持JGraph 体系尤其是图形模式非常类似于XML结构因此任何基于XML的文件能存入图形模式而无需下载其它Java库参考JGraph中的 GXLReader和SVGWriter的实现 Gxl svg 示例 GXL 导出可通过内置在 JGraphpad 中的数据转换(拖放/剪贴板)或使用文件 > 导出 > GXL来实现在JGraphpad中打开文本编辑器选定你想转换到GXL的子图然后执行文本编辑器中的Edit > Copy Edit > Paste 这将会将GXL插入剪贴板的文本解释区用JGraph怎样生成SVG 图形?Batik 项目()提供了一个JavaTM的SVG生成器要查看它的规范可访问基本的想法通过实例化JGraph的paint方法来创建一个特定的Graphics D 扩展即SVGGraphics D 注意: 与JGraph Batik 是个庞大的产品! 布局算法支持什么设计?该框架支持设计算法但并不包括全部的核心API( JGraph ) 图形算法是个非常复杂的领域这个项目的目的是设计一个标准的Swing图形组件由Alex Shapiro设计的一个示例算法已成为JGraphpad源码示例中的一部分T ouch 示例主要用来演示在JGraph中生成算法实现的方法可参考jgraph graph Touch 怎样实现自动布局?Touch 算法以线程方式实现它直接在顶点上操作(不能撤消)可以通过用户交互来修改在普通CPU上有超过个顶点时速度会变慢JGraphpad中提供了一个arrange 功能用来运行多线程大约毫秒可以实现另一个设计功能作为一种替代方法设计功能可以通过设置位置来实现但该设计还没有完成这种方法也用在Microsoft VisioTM中通过增加算法也可以实现(增加算法以改变图形是当前的基本思路) 由于这些算法依赖于典型的应用所以暂时还没有计划整合这些算法到枋心API中但是如果将这些算法到我们的站点上也是个不错的选择!因此如果有人实现了它我也想知道相关信息!JGraph 的体系也允许全新设置我听到的一个示例是化学应用组件(分子结构)需要单独设计各个组件 (JGraphpad 包提供了组合查找数据结构可以被用来计算图形组件组件是顶点集的连接也就是可达的有序边 ) 设计后怎样刷新?使用下面的代码: CellView[] v = graph getView() getRoots(); graph setPreferredSize(AbstractCellView getBounds(v) getSize()); graph graphDidChange(); 注意: 在模型/视图编辑上显示会自动刷新 lishixinzhi/Article/program/Java/JSP/201311/19422。
一、 Prams[n.参数] 电池组(1).Geometry[美[dʒi'ɑːmətri],n.几何,几何学] 电池组这一组都是对数据的抓取,电池都有左侧输入端和右侧输出端,都有两种输入数据的方法,一种是把相应数据连接到左侧输入端,另一种是电池上点右键 Set one XXX,新设置一个XXX。
Set multipleXXX,[美['mʌltɪpl],adj,多种多样的,许多的,n.倍数,关联],即设置多个。
但是Set one curve 只能选取Rhino 中创建好的,[美['raɪnoʊ],n.犀牛]左侧输入端:任何相应属性数据。
右侧输出端:电池所包含的相应属性数据。
属性对应如下:Point:输入点数据【美[pɔɪnt],n.点】Vector:输入向量数据【美['vektər],n,向量,矢量】Circle:输入圆数据,这个电池只包含圆和椭圆相关曲线【美['sɜːrkl]】Curve:输入曲线数据【美[kɜːrv]】Plane:输入平面数据【美[pleɪn]】Circular Arc:输入圆弧数据【美['sɜːrkjələr],adj,圆形的,循环的,美[ɑːrk],n,弧,弧形物】Line:输入直线数据【美[laɪn]】Rectangle:输入网格数据【美['rektæŋɡl],n,矩形】Box:输入实体盒子数据【美[bɑːks]】Mesh:输入mesh面数据,即网格面数据【美[meʃ],n.网状物】Surface:输入曲面数据,为poly曲面,不可输入mesh曲面【美['sɜːrfɪs] n.表面,外表】Brep:输入任意实体或者曲面数据(这个很常用)【美[b'rep]n.表面表示】Mesh Face:与mesh类似,这里更多的是提取规则的mesh面Twisted Box:输入北扭曲的实体【美['twɪstɪd],adj,扭曲的】Field,输入磁场数据【美[fiːld]】Group:输入成组的数据【美[ɡruːp]】Geometry:输入几何图形数据(包含点线面任何数据)Transform输入三线性集合变换图形【美[træns'fɔːm],v,改边,转换】Geometry Pipeline从犀牛中输入集合管线到GH中【美['paɪplaɪn],n,管道,管线,渠道】Geometry Cache物体缓存,【美[kæʃ],n,隐藏所,缓存】主要作用:1、快速烘培GH汇总的物体,2、快速选择已经烘培到Rhino中的物体(2).Primitive 电池组【['prɪmətɪv] ,adj,原始的,简陋的】Boolcean:输入布尔值【['buːliən] n,布尔布尔逻辑的】Integer:输入整数【 ['ɪntɪdʒər] n. [数] 整数;整体;】Number:输入一列双精度浮点数据Text:输入任意文字Color:输入一列颜色参数的RGB值【['kʌlər]】Culture:包含了一系列文化特征【[ˈkʌltʃɚ] n.文化,修养】Domain²:输入任意二维区间数据或者UV范围【[doʊ'meɪn]N. 领地;领域;范围】Matrix:包含了一系列的数据矩阵【['meɪtrɪks] n 矩阵】Complex:代表一个复核的集合。
ggplot2包学习笔记ggplot2包学习笔记⼀、qplot函数使⽤qplot(x=…,y=…,data=…,shape=…,colour=…,size=…,alpha=…,geom=…,facets=…,xlim=c(),ylim=c(),log=””,main=””,xlab=””,ylab=””)参数介绍:shape:为数据集data中的分类变量,即为因⼦colour:为数据集data中的分类变量,即为因⼦size:使⽤I(num)形式调⽤,⽐如I(2)即可改变散点⼤⼩alpha图形属性:其取值从0(完全透明)到1(完全不透明),透明度通常⽤分数表⽰,如:1/19,1/50,分母上的数字表⽰经过多少次重叠之后颜⾊将变得不透明。
geom⼏何对象:⼆维变量关系:geom=”point”绘制散点图,这是当你指定了x,y,data参数时,qplot函数的默认设置gemo=”smooth”拟合⼀条平滑曲线,并在图中展⽰曲线和标准误geom=”boxplot”绘制箱线胡须图geom=”path”和geom=”line ”:可以在散点之间绘制连线,⼀维变量:连续性变量:geom=”histogram”绘制直⽅图,在画直⽅图时,使⽤bins参数可以调整组数,binwidth可以调整组距,使⽤fill=参数可以显⽰在条线图每组中不同分组中的数量情况geom=”freqpoly”绘制频率多边形geom=”density”绘制密度曲线,使⽤colour=…参数可以画出多条由colour为分组依据的密度图离散型变量:geom=”bar”绘制条形图,使⽤weight=…参数分⾯操作:facets=var1~var2,或者facets=var1~. ,如果想要纵坐标显⽰密度⽽不是数量,可以添加参数..density.. ,theme(axis.text.x = element_text(angle = 90, hjust = .5, v just = .5))可以设置x轴标签的倾斜⾓⼆、ggplot2语法图像属性:坐标,颜⾊,形状,⼤⼩标度变换:把数值的数据单位转换为电脑可以识别的物理单位(如像素和颜⾊)图层:数据,映射,统计变换,⼏何形状和位置调整共同组成了⼀个图层⼀个图形可以包括很多图层。
JGraph的用户手册目录11.1 JGraph的做什么?1.2什么是1.2.1图形可视化1.2.2图表互动1.2.3图表布局1.2.4图形分析1.3关于本1.3.1本手册的先决条件......................................... . (12)1.3.2获得更多1.4关于1.4.1 JGraph的秋千1.4.2把JGraph1.4.2.11.4.31.4.4 JGraph的1.5获取1.5.1 JGraph网站1.5.2下装1.5.3安装1.5.4项目结构和构建选项.......................................... .. (17)1.6的设计2 JGraph的图形2.1重要应用。
2.2了解HelloWorld应用程序............................................. .. (19)2.2.1创建2.2.2插入2.2.2.1配置单元的属性,然后插入......................................... . (24)2.2.3编辑图表2.2.3.1删除单元格2.2.4删除2.2.5属性2.2.5.1属性地图编辑后呼叫......................................... .. (29)2.2.6复杂2.2.72.3创建和配置JGraph类........................................... . (32)2.3.1配置2.4走势图2.4.1.12.4.1.2 3编辑2.4.1.3访问图形模型数据.......................................... .. (36)2.4.1.4克隆的图模型........................................... . (38)2.4.1.5导航连接使用而GraphModel接口 (38)2.4.1.5.1获取连接到一个顶点的边的集合.................................... 0.40第3页JGraph的用户手册2.4.1.5.2获取源和目标顶点的边缘 (40)2.5设计合同33.1类型3.2细胞的接口和默认的实现............................................ . (42)3.2.1 GraphCell3.2.2边缘和端口3.2.33.2.3.1默认图表细胞构造函数和方法........................................ . (45)3.2.4克隆3.3用户3.3.1获取和更改用户对象......................................... . (47)3.4细胞3.4.1细胞3.4.2手机浏览3.4.2.13.4.2.23.4.2.2.1如何创建自己的单元查看和渲染.................................... (51)3.4.3创建细胞意见和关联与细胞....................................... . (52)3.4.4默认的单元格视图和渲染的实现......................................... .. (54)3.4.4.1的细胞3.4.4.2的细胞3.4.4.2.13.4.4.2.23.4.4.2.33.5使用3.5.1使用3.5.1.13.5.1.2顶点界的约束............................................ . (58)3.5.1.3调整和3.5.1.43.5.1.5标签3.5.1.63.5.1.73.5.1.83.5.2使用3.5.2.13.5.2.2控制点和路由........................................... . (62)3.5.2.3定位边缘3.5.2.4边缘3.5.2.5边缘端3.5.2.6连接3.5.3两个顶点和边的属性......................................... .. (69)3.5.3.1基本的编辑功能的约束........................................... (69)3.5.3.23.5.3.33.5.4使用3.5.4.1港第4页JGraph的用户手册3.64高级4.14.1.1图形模型表示的分组.......................................... .. (76)4.1.24.1.3集团4.1.4移进/出4.1.5移除子4.24.34.3.1本地查看4.3.24.3.2.1配置能见度编辑操作后,.......................................... . (82)4.3.3本地查看4.3.4展开和折叠组........................................... . (84)4.3.5其他GraphLayoutCache选项............................................ . (85)4.4高级型4.4.1型号4.4.24.4.2.14.4.2.1.1撤消支持继电器......................................... . (87)4.4.2.1.24.5拖动和4.64.755.1走势变化的事件和监听............................................ .. (92)5.2 GraphUI和处理鼠标输入........................................... (93)5.2.1鼠标5.2.25.2.35.2.46个I / O和JGraph的6.1 XML6.2图片6.3 SVG6.4导出一个无头的环境中............................................ (100)6.5工作没有Swing组件............................................ (101)在6.6 JGraph的6.777.1简介7.2安装和编译7.2.17.2.27.2.2.1项目结构和构建选项.......................................... . (104)7.3 JGraph的布局设计........................................... . (107)7.3.1 JGraph的布局Pro的是什么?............................................. .. (107)第5页JGraph的用户手册7.4运行7.4.1编写你自己的7.4.2边缘控制7.4.37.5使用7.5.1树7.5.1.1树7.5.1.1.17.5.1.1.27.5.1.1.3 levelDistance和nodeDistance .......................................... (115)7.5.1.1.47.5.1.1.5 positionMultipleTrees treeDistance .......................................... (118)7.5.1.2紧凑树7.5.1.3径向树7.5.2有机7.5.2.1春7.5.2.2快速有机7.5.2.3倒自筹备地图........................................... . (123)7.5.2.4有机7.5.2.4.1 isOptimizeNodeDistribution和nodeDistributionCostFactor (125)7.5.2.4.2 isOptimizeEdgeLength edgeLengthCostFactor (126)7.5.2.4.3 isOptimizeEdgeCrossing和edgeCrossingCostFactor (127)7.5.2.4.4 isOptimizeEdgeDistance,edgeDistanceCostFactor,isFineTuning[7.5.2.4.5 isOptimizeBorderLine,borderLineCostFactor和averageNodeArea (131)的7.5.2.4.6 minMoveRadius,initialMoveRadius radiusScaleFactor (133)7.5.2.4.77.5.2.4.8 unchangedEnergyRoundTermination ............................................ .. (134)7.5.2.4.97.5.2.5分层7.5.2.5.17.5.2.5.2内节点间的距离和等级的单元格间距“..................................... .. (136)7.5.2.5.37.5.3边缘7.5.3.1正交边缘路由............................................ . (138)7.5.4简单7.5.4.1圈7.6使用示例源代码............................................ .. (140)7.6.1进度附录A -第6页JGraph的用户手册1引言JGraph的是一个成熟的,功能丰富的开源图形可视化库用Java编写的。
DOI:10.3969/j.issn.2095-509X.2013.08.004基于Web 的JGraphx 自动绘制拓扑图的设计和实现闫 黎,白晓虎(中国空空导弹研究院,河南洛阳 471009)摘要:首先对JGraphx (Java 开源绘图工具)的功能和特性进行了介绍,提出了一种使用JGraphx 与Java Applet 技术相结合的技术实现方式,通过这种方式,能够在Web 浏览器中高效、准确地绘制网络拓扑和机房拓扑等图形。
然后结合实际开发项目,使用Applet 技术对JGraphx 进行了二次开发,在拓扑图XML 元数据中增加了企业的设备业务信息,并且将拓扑节点与业务数据关联,通过修改节点的显示方式实现告警,使用拓扑图的自动布局实现自动绘制拓扑图,实现企业信息系统对网络拓扑图的绘制、告警、监控需求。
关键词:JGraphx ;网络拓扑;JavaScript ;Web Service ;Applet中图分类号:TP319 文献标识码:B 文章编号:2095-509X (2013)08-0018-05 基于Web 的网络拓扑图绘制、监控是未来的一个发展趋势,通过Web 浏览器,网管人员能够快速便捷地了解网络的拓扑结构、每个设备的健康状况,能够做到移动办公,实时监控,及时发现故障,提高网络的整体运行环境。
JGraphx[1]是一个开源的、兼容Swing 的图形组件,具有相当高的交互性和自动化,是一套为图定做的组件。
其主要用途是应用在一些需要表示图的结构中,比如流程图、UML、交通线路、网络等等。
本文将使用其实现网络拓扑图的自动绘制。
1 相关技术简介a.JGraphx 绘图元素分为3种:节点(Vertex)、连线(Edge)、端口(Port)。
JGraphx 使用cell 来表示它们,并提供相关API 区分它们的不同。
b.Applet 是用Java 语言编写的小应用程序,它们可以直接嵌入到网页中,并能够产生特殊的效果。
Shader Graphs 节点笔记整理:老鬼快捷键:空格打开添加接单右键菜单Master 主节点PBR Graphs主节点:Vertex Position:顶点位置Vertex Normal:顶点法线Vertex Tangent:顶点切线Albedo:反射颜色(基础颜色)Normal:法线Metallic: 金属度Smoothness: 平滑度Occlusion: 闭塞吸收Alpha: 透明度AlphaClipThreshold: 透明剪裁材质选项:Precision:精度Inherit: 继承Float: 浮动Half: 减半Workflow: 工作流Specular: 镜面反射Metallic: 金属Surface: 表面Opaque: 不透明的Transparent: 透明的Blend:混合材质Alpha: 透明Premultiply: 前乘Additive: 相加Multiply: 相乘Two Sided:双面Unlit Graphs 主节点Vertex Position: 顶点位置Vertex Normal: 顶点法线Vertex Tangent: 顶点切线Color:颜色Alpha:透明度AlphaClipThreshold: 透明度剪裁材质选项:Precision:精度Inherit: 继承Float: 浮动Half: 减半Surface: 表面Opaque: 不透明的Transparent: 透明的Blend:混合材质Alpha: 透明Premultiply: 前乘Additive: 相加Multiply: 相乘Two Sided:双面Sprite Lit Master2D精灵光着色器为LWRP中2D精灵的材质创建2D着色器Sprite Unlit Master2D精灵无光着色器为LWRP中2D精灵的材质创建2D着色器Visual Effect Master视觉特效Color:HDR颜色Base Color:基础颜色Metallic:金属度Smoothness:平滑度Normal:法线Emissive:自发光Alpha:透明度Alphathreshold:透明度裁剪材质选项:Alpha Mask:剪裁模式Lit:光模式----------------------------------------------------------------------------------------------------------------------- Utility通用Custom Function自定义函数自定义函数必须至少要有一个输出槽Preview预览节点,In = OutLogic 逻辑运算节点Comparison对比节点,输出True或FalseEqual 等于Not Equal 不等于Less 小于Less Or Equal 小于等于Greater 大于Greater or Equal 大于等于Branch分支节点,输入True或False,然后输出True或False相对应的值All输入只要非0,则输出trueAnd和运算Out = A && BOr或运算Out = A || BNand与非运算Out = !A && !BNot非运算Out = !InIs NaN是否为数字,如果不是数字,返回TrueIs Infinite是否无限,如果无穷大,则返回TrueIs Front Face是否是正面------------------------------------------------------------------------------------------------------Math 数学Advanced 进阶Absolute绝对值取正Exponential下拉框选择e为底数||2为底数Length长度获取向量长度,Vector2 =Vector3 =Log对数Modulo取余取反Normalize归一化Posterize色调分离色阶效果,把相邻颜色归一成同样颜色Reciprocal倒数Reciprocal Square Root反平方根Basic 基础Add相加Multiply相乘Divide相除Power平方Square Root 开方Subtract相减Derivative 导数DDX偏导数X坐标返回输入值的偏导数的屏幕空间X坐标DDXY偏导数XY坐标之和返回输入值的两个偏导数之和,两个偏导数分别对应屏幕空间X坐标和Y坐标DDY偏导数Y坐标返回输入值的偏导数的屏幕空间Y坐标Interpolation 插值Inverse Lerp逆向线性插值Out = (T - A) / (B - A)Lerp线性插值Out = (A - B) * T + ASmoothstep平滑插值插值在开始时加快,在结束时减缓Matrix 矩阵Matrix Construction矩阵构造创建一个矩阵。
Jts个人学习笔记-gohuiJts个人学习笔记Jts(Java Topology Suite)是关于GIS空间数据Java的API。
目录三角网的创建 (2)1、创建Delaunay三角网: (2)2、创建Conforming Delaunay三角网 (2)3、创建Voronoi图 (3)4、Quad-Edge,四方边缘结构 (3)5、在Tin、DTin、Voronoi中插入一点(IncrementalDelaunayTriangulator) (11)DistanceOp类的相关操作:com.vividsolutions.jts.operation.distance (11)1、nearestPoints(Geometry g0, Geometry g1) (11)2、distance(Geometry g0, Geometry g1) (12)3、nearestLocations() (12)LineSegment类的相关操作:com.vividsolutions.jts.geom (12)1、closestPoint(Coordinate p) (12)2、closestPoints(LineSegment p) (13)3、distance (Coordinate p)和distancePerpendicular(Coordinate p) (13)4、intersection(LineSegment line)和lineIntersection(LineSegment line) (13)5、pointAlong(double slf) (14)6、pointAlongOffset(double slf, double od) (14)7、project(Coordinate p)和project(LineSegment seg) (15)8、projectionFactor(Coordinate p) (15)9、segmentFraction(Coordinate inputPt) (16)CGAlgorithms类的相关操作:com.vividsolutions.jts.algorithm (16)1、orientationIndex(Coordinate p1, Coordinate p2, Coordinate q) (16)Angle类的相关操作:com.vividsolutions.jts.algorithm (16)1、angleBetween(Coordinate tip1, Coordinate tail, Coordinate tip2) (17)2、angleBetweenOriented(Coordinate tip1, Coordinate tail, Coordinate tip2) (17)AffineTransformationFactory类的操作:com.vividsolutions.jts.geom.util (17)1、createFromBaseLines(Coordinate src0, Coordinate src1, Coordinate dest0, Coordinate dest1) (18)AffineTransformation类的操作:com.vividsolutions.jts.geom.util (18)1、构造函数:AffineTransformation(double[] matrix) (18)三角网的创建Jts中创建Tin时,会自己添加新的点,不是太好(ArcGIS在创建Tin时也是会自己新建点的)1、创建Delaunay三角网:DelaunayTriangulationBuilder delaunayBuilder = new DelaunayTriangulationBuilder();delaunayBuilder.setSites(coorList);Geometry geo = delaunayBuilder.getEdges(new GeometryFactory());2、创建Conforming Delaunay三角网ConformingDelaunayTriangulationBuilder conformTriBuilder = new ConformingDelaunayTriangulationBuilder();conformTriBuilder.setSites(geoFactory.createMultiPoint(coor List.toArray(newCoordinate[0])));conformTriBuilder.setConstraints(geoFactory.createMultiLine String(lineStrings)); Geometry geo = delaunayBuilder.getEdges(new GeometryFactory());注:还有一个ConformingDelaunayTriangulator,这个类里面包含了更多的方法。
操作技巧 (2)关卡蓝图和类蓝图的区别? (2)节点 (2)Event Beginplay 开始事件(红色触发性事件节点) (2)Event Tick 重复执行事件(红色触发性事件节点) (3)按键出发(红色触发性事件节点) (3)Print String 打印文字 (3)Delay 延时 (4)实例 (4)Retrigerable Delay 重新延时 (4)实例 (4)变量 (5)变量类型 (5)变量添加到蓝图方法: (6)变量运算符 (6)String的Append 把两个字符串加在一起 (7)BuildString 给字符串加前缀后缀,和连接一个其他变量值 (8)Float(浮点)和Byte(字节)变量类型 (9)String、 Name 、Text三种字符串的区别 (9)Vector向量、Rotator旋转、Transform变形(位移,旋转,缩放) (9)流程控制节点 (9)Branch分支 (类似IF) (9)DoOnce一个事件只执行一次 (10)DoN执行N次一个事件执行多次 (10)DoOnce MultyInput 多个事件,每次执行一个,后重置。
(11)FlipFlop 翻转切换(开关) (12)Gate门 (12)Multy Gate 多事件一门 (13)Sequence多事件同时触发,并列执行(并行) (13)Array数组 (14)Array数组的概念 (14)创建数组类型的变量 (14)访问数组的某个元素(读操作) (15)数组元素的赋值(写操作) (16)Add为数组增加元素 (17)AddUnique (17)Insert插入元素 (17)RemoveIndex和RemoveItem (17)FindItem和ContainsItem (17)LastIndex Resize Clear (17)ForeachLoop遍历 (17)Shuffle (17)结构体数组 (17)结构体数组概念 (17)Structure自定义结构体 (18)BreakStruct (18)SetMembersInStruct (18)MakeStruct (18)创建结构体数组 (18)结构体数组的访问 (18)结构体数组的遍历 (18)Add 和 SetArrayElement (18)AppendArray (18)操作技巧绿色是获取蓝色是设置选中节点Ctrl+W,复制但前节点。
已经安装完毕 GnuRadio ,可以进行 GnuRadio 的学习,相比较于利用 python 语言编写调用已编好的模块,利用 grc 则比较容易,在 grc 中,你仅仅只需要将各个模块进行连接,当然你需要对它的原理比较清晰,正确配置它的参数,在网上也能收到一些资料,进行简单的 GRC 学习。
Grc 的模块比较简单,大家只要会通信原理的知识就能读懂一些。
附 grc 的图一张这个流图很简单,三个信号叠加进入声音信道输出。
(注: out 与 in 管脚的颜色表示输入输入输出的类型,只有输入输出类型一致才可以运行程序,否则程序会出错)grc 的难点主要是 grc 的模块比较多,你可能不懂每个模块的作用如何,也就不懂如何使用各个模块,下面附上各个模块的作用(这是早期版本的各个模块的作用,与现在的可能存在些许不同,但大致相同)Source block :1、 Constant Source。
提供一个幅度恒定的波形(阶跃信号)。
Output type :complex、 int、 short、float Parameters( 参数):Constant :幅度值。
2、 Signal SourceFrequency:频率;信号源,可提供恒定波形(阶跃信号)、正弦信号、余弦信号、方波信号、三波信号、锯齿波信号。
Output type :complex、 int、 short、floatParameters :Sample rate :采样率;Waveform :选择信号源所用波形;Frequency:频率;Amplitude :幅度;Offset :上下偏移量。
3、 Noise Source噪声源,可提供四种噪声:高斯噪声 ( Gaussian )、拉普拉斯噪声 ( Laplacian )、脉冲噪声( Impulse )、均匀分布噪声( Uniform )。
Output type :complex、 int、 short、floatParameters :Noise Type :噪声类型;Amplitude :噪声幅度;Seed:种子 (噪声是一种随机数,但一般随机数都是伪随机数,即以一真随机数种子作为初始条件,用一种算法不停迭代产生随机数) 。
jgraph 简单例子入门2009-03-20 15:02@SuppressWarnings("unchecked")public static void main(String[] args) {//模型即数据GraphModel model = new DefaultGraphModel();//视图GraphLayoutCache view = new GraphLayoutCache(model,new DefaultCellViewFactory());//通过模型与视图创建图形JGraph graph = new JGraph(model,view);//图形上的单元[单元包括:顶点,边,结点]DefaultGraphCell [] cells = new DefaultGraphCell[3];//图形的第0个单元[为顶点]cells[0] = new DefaultGraphCell(new String("Hello"));//为单元设置属性//设置图形单元的坐标和高宽GraphConstants.setBounds(cells[0].getAttributes(),new Rectangle2D.Double(20,20,40,20));//设置梯度颜色[即由白色到设置颜色的一个过度]GraphConstants.setGradientColor(cells[0].getAttributes(), Color.orange);GraphConstants.setOpaque(cells[0].getAttributes(),true);//为顶点的一个边能够连接这个顶点的点DefaultPort port0 = new DefaultPort();//让点成为顶点的子结点//or port0.setParent(cells[0]);cells[0].add(port0);//图形的第1个单元[为顶点]cells[1] = new DefaultGraphCell(new String("World"));//为单元设置属性GraphConstants.setBounds(cells[1].getAttributes(),new Rectangle2D.Double(140,140,40,20));GraphConstants.setGradientColor(cells[1].getAttributes(), Color.red);GraphConstants.setOpaque(cells[1].getAttributes(),true);DefaultPort port1 = new DefaultPort();cells[1].add(port1);//图形的第2个单元[为边]DefaultEdge edge = new DefaultEdge();edge.setSource(cells[0].getChildAt(0));edge.setTarget(cells[1].getChildAt(0));cells[2] = edge;//边的箭头指向//创建一个箭头int arrow = GraphConstants.ARROW_CLASSIC;GraphConstants.setLineEnd(edge.getAttributes(),arrow);GraphConstants.setEndFill(edge.getAttributes(),true);//把结点放到图形当中graph.getGraphLayoutCache().insert(cells);/** 图形属性设置**///图形是否响应鼠标事件,默认为true// graph.setEnabled(false);//设置顶点和边是否可编辑// graph.setEditable(false);//设置编辑多少次后可编辑,默认2次// graph.setEditClickCount(3);//设置顶点和边是否可移动,默认为true// graph.setMoveable(true);//设置单元是否可连接,默认为true// graph.setConnectable(true);//调协单元是否不可连接,默认为true// graph.setDisconnectable(true);//graph.setGridEnabled(false);//设置单元是否可移动到左边或上边小于0的位置// graph.setMoveBelowZero(true);// graph.setAntiAliased(true);//设置选中后是否有选择框,默认为true// graph.setSelectionEnabled(false);/** 图形模型的增改删**///编辑单元属性// Map nested = new Hashtable();// Map attributeMap1 = new Hashtable();// GraphConstants.setLineColor(attributeMap1, Color.orange); // Map attributeMap2 = new Hashtable();// GraphConstants.setLabelAlongEdge(attributeMap1, true); //// nested.put(cells[1], attributeMap1);// nested.put(cells[2], attributeMap2);//// graph.getGraphLayoutCache().edit(nested, null, null, null); // graph.getGraphLayoutCache().insert(null,nested,null,null);//移出单元属性// Object[] o = new Object[]{GraphConstants.ICON};// GraphConstants.setRemoveAttributes(map, o);//移出单元// graph.getGraphLayoutCache().remove(cells);//无参图形,显示一UML图//JGraph graph1 = new JGraph();/**图形模型的常用方法**/System.out.println("==="+graph.getModel().getRootCount());System.out.println("==="+graph.getModel().getRootAt(0));System.out.println("==="+graph.getModel().getIndexOfRoot("Hello"));System.out.println("==="+graph.getModel().contains("Hello"));System.out.println("==="+graph.getModel().getChildCount(cells[0]));//得到指定边的源顶点System.out.println("==="+graph.getModel().getParent(graph.getModel().getSource(cells[2]))); //单元克隆// Object clone = DefaultGraphModel.cloneCell(graph.getModel(), cells[0]);//JFrameJFrame frame = new JFrame();frame.getContentPane().add(new JScrollPane(graph));frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setV isible(true);}。
ggplot2学习笔记:图例系统及其调整函数最近确实更得太少了,也不知道自己在忙啥,反正感觉不到忙碌的收获,要不是好多小伙伴儿在后台催更,感觉都快忘了还有要更新公众号这回事儿,今天赶紧找空写一篇~学过ggplot2的小伙伴儿们大概都了解过,ggplot2的语法系统将数据层和美化层分开,这种理念给了学习更多的选择,你可以只学习数据层,这样大可保证做出正确的图来(虽然质量不敢恭维),也可以同时学习数据层和美化层(当然你要耗费双倍的精力,因为ggplot2理念几个美化的函数模块那是出了名的繁杂)。
最初学习的时候也是各种急功近利,后来才慢慢沉下心来看源文档,逐步系统的总结了其非数据层面的各套系统的设计理念。
今天只讲图例系统,这一块是大部分学习者非常容易忽视的东西(有木有学会ggplot()+geom_xxx就觉得超神了然后自我感慨,哇塞ggplot2原来这么简单,远远没有传说中的那么难耶)。
这么想就不对了,即便你深入掌握了ggplot() + geom_xxx()及其内部参数继承逻辑关系,那也只能保证你正确的做出图来,正确的做出来图并不带表可以把图做好,就像工作不出错并不代表工作出色一样,这样只能打60份,因为图表质量不够,这样使用ggplot2并无法发挥其百分百的功力。
如果你想洞悉ggplot2的全貌,你需要了解除了geom_xxx(stat_xxxx)系统之外的标度调整系统:轴标度【scales_x/y_continuous/discrete】、颜色标度【scale_fill/colour_continuous/discrete/manual】、透明度标度【scale_alpha_continuous/discrete/manual】、大小标度【scale_size/radius_area】、形状标度【scale_shape】、线条类型标度【scale_linetype】坐标系系统:coord_flip()coord_polar()coord_map()图例系统:guides() guide_colorbar() guide_legend()分面系统:facet_grid()facet_wrap()主题系统:theme()theme_get()theme_set(new)theme_update(...)theme _replace(...)e1 %+replace% e2element_text()element_rect()element_line()element_blank() 文本标签系统:geom_text()geom_label()annotations()labs()可以毫不留情的说,以上这些系统的所有内置参数全部罗列出来,没上千也有好几百了,所以学好ggplot2真的任重而道远呀哈哈本篇只分享图例系统:guides()ggplot2的图例系统函数比较分散,在所有标度调整函数(轴标度除外)内部留有guide参数,可以通过guide_colorbar()、guide_legend()两个封装函数来进行图例自定义,但是因为guide_colorbar()、guide_legend()这两个函数也是巨无霸,直接写在scale_xxx这种本身就是巨无霸的函数内部,整个代码简直不堪重负。
jgraphx使用案例jgraphx是一个基于Java的图形库,用于创建和操作图形化用户界面中的图形。
它提供了丰富的功能和灵活的API,可以用于绘制各种类型的图形,包括流程图、组织结构图、网络拓扑图等等。
下面是一些使用jgraphx的案例。
1. 绘制流程图:jgraphx可以很容易地绘制流程图,例如一个简单的请假审批流程图。
你可以使用jgraphx的API创建各种形状的节点,如矩形、圆角矩形和菱形,然后将它们连接起来形成流程图。
2. 绘制组织结构图:jgraphx也可以用于绘制组织结构图,比如一个公司的组织结构图。
你可以使用jgraphx的API创建各种形状的节点,如矩形和椭圆,然后将它们连接起来形成组织结构图。
3. 绘制网络拓扑图:jgraphx可以用于绘制网络拓扑图,比如一个计算机网络的拓扑图。
你可以使用jgraphx的API创建各种形状的节点,如矩形和圆形,然后将它们连接起来形成网络拓扑图。
4. 绘制UML类图:jgraphx可以用于绘制UML类图,比如一个简单的图书馆管理系统的类图。
你可以使用jgraphx的API创建各种形状的节点,如矩形和椭圆,然后使用连线来表示类之间的关系。
5. 绘制数据流程图:jgraphx可以用于绘制数据流程图,比如一个简单的数据处理流程图。
你可以使用jgraphx的API创建各种形状的节点,如矩形和圆角矩形,然后使用连线来表示数据的流动路径。
6. 绘制状态转换图:jgraphx可以用于绘制状态转换图,比如一个自动售货机的状态转换图。
你可以使用jgraphx的API创建各种形状的节点,如矩形和圆形,然后使用连线来表示状态之间的转换。
7. 绘制地理信息系统地图:jgraphx可以用于绘制地理信息系统中的地图,比如一个城市的地图。
你可以使用jgraphx的API创建各种形状的节点,如矩形和圆形,然后使用连线来表示道路和路径。
8. 绘制电路图:jgraphx可以用于绘制电路图,比如一个简单的逻辑门电路图。
JGraph学习都说JGraph是mvc的。
下面就写一个图形编辑器展开学习。
图形编辑器首先要能够画图(包括图形的拖放,属性设置),其次将图形保存,然后考虑高级特性:undo/redo,open已存在,缩放,布局,输入输出格式等。
第一部分1. JGraph程序或应用的基本结构JGraph中用类JGraph来表示一个图,类GraphLayoutCache来表示视图(以前叫GraphV iew),类GraphModel表示视图对应的模型。
之后,用类Cell在GraphLayoutCache,即视图来具体画图。
即Cell是图的基本单元,JGraph里面图是由Cell组成的。
所以,通常可以这样理解整体结构://创建模型GraphModel model = new DefaultGraphModel();//创建视图GraphLayoutCache view = new GraphLayoutCache(model,new DefaultCellViewFactory());//创建JGraph对象JGraph graph = new JGraph(model, view);//下面的代码创建很多Cell,并设置...//将所有Cell加入JGraph对象graph.getGraphLayoutCache().insert(cells);2. 类Cell作为JGraph中图的基本组成部分,Cell分为三类:V ertex,Edge,Port。
如3中的图,Hello和World是V ertex,它们之间的连接线是Edge,而Edge与Hello的连接处,以及与World的连接处称为Port(图中没有显示的表示)。
Port是Edge与V ertex的连接点,每一个连接就一定有一个连接点。
当然JGraph提供了很多方法来设置Cell的属性,包括外观。
还可以创建用户自己的外观。
3. JGraph中视图与模型的关系上面这个视图有两个V ertex,一个Edge,两个Port。
目录阅读有关说明4常见变量、类及方法:..................................................................................................................... .. (11)com.mxgraph.analysis包: (12)此包为图的分析提供了各种算法,例如最短路径和最小生成树 (12)com.mxgraph.canvas包: (12)此包包含了使用不同技术绘制graph的各种工具,例如:graphics2D、html、SVG、VML 等 (12)com.mxgraph.io包 (12)此包包含了输入输出所用到的所有类 (12)yout (12)此包包含各种graph的布局 (12)yout.hierarchical (13)yout.hierarchical.model (13)yout.hierarchical.stage (13)yout.orthogonal (13)yout.orthogonal.model (13)*com.mxgraph.model 包: (13)此包包含定义graph model的各个类 (13)*com.mxgraph.model 中mxCell类: (13)*com.mxgraph.model 中mxcellpath类: (13)*com.mxgraph.model 中mxGeometry类: (14)*com.mxgraph.model 中mxGraphModel类: (14)*com.mxgraph.model 中mxIgraphmodel接口: (14)*com.mxgraph.model包中mxIGraphModel.mxAtomicGraphModelChange类: (16)*com.mxgraph.model 包中mxIcell接口: (16)*com.mxgraph.model 包中mxIcell接口: (16)com.mxgraph.reader包 (17)此包包含的类有如下功能:使用SAX将一个编码过的mxGraphView转化为一个image,并且此过程不用创造一个graph model (17)com.mxgraph.sharing (17)这个软件包包含了由多个客户端并发图编辑所需的所有类。
(17)com.mxgraph.swing包: (17)包含了JFC或Swing的主要成分,也就是graph部分和外形部分 (17)com.mxgraph.swing.handler 包: (17)包含所有用于处理JFC/Swing鼠标响应事件的类 (17)Classes (17)com.mxgraph.swing.util 包: (18)包含需要JFC/Swing的所有有用的类,也就是:对鼠标处理事件、拖拽和删除事件以及图标等。
(18)com.mxgraph.swing.view 包: (18)这个包包含了交互所需要的所有类 (19)com.mxgraph.util 包: (19)com.mxgraph.view包: (19)实现graph的component。
(20)Mxcellstate类: (20)有关label的问题: (21)jgraphx.......\build.xml.......\docs.......\....\allclasses-frame.html.......\....\allclasses-noframe.html.......\....\com.......\....\...\mxgraph.......\....\...\.......\algebra.......\....\...\.......\.......\class-use.......\....\...\.......\.......\.........\mxConstantCostFunction.html.......\....\...\.......\.......\.........\mxDistanceCostFunction.html.......\....\...\.......\.......\.........\mxFibonacciHeap.html.......\....\...\.......\.......\.........\mxFibonacciHeap.Node.html.......\....\...\.......\.......\.........\mxGraphAlgebra.html.......\....\...\.......\.......\.........\mxICostFunction.html.......\....\...\.......\.......\.........\mxUnionFind.html.......\....\...\.......\.......\.........\mxUnionFind.Node.html.......\....\...\.......\.......\mxConstantCostFunction.html.......\....\...\.......\.......\mxDistanceCostFunction.html.......\....\...\.......\.......\mxFibonacciHeap.html.......\....\...\.......\.......\mxFibonacciHeap.Node.html.......\....\...\.......\.......\mxGraphAlgebra.html.......\....\...\.......\.......\mxICostFunction.html.......\....\...\.......\.......\mxUnionFind.html.......\....\...\.......\.......\mxUnionFind.Node.html.......\....\...\.......\.......\package-frame.html.......\....\...\.......\.......\package-summary.html.......\....\...\.......\.......\package-tree.html.......\....\...\.......\.......\package-use.html.......\....\...\.......\canvas.......\....\...\.......\......\class-use.......\....\...\.......\......\.........\mxBasicCanvas.html.......\....\...\.......\......\.........\mxGraphics2DCanvas.html .......\....\...\.......\......\.........\mxHtmlCanvas.html.......\....\...\.......\......\.........\mxICanvas.html.......\....\...\.......\......\.........\mxImageCanvas.html.......\....\...\.......\......\.........\mxSvgCanvas.html.......\....\...\.......\......\.........\mxVmlCanvas.html.......\....\...\.......\......\mxBasicCanvas.html.......\....\...\.......\......\mxGraphics2DCanvas.html.......\....\...\.......\......\mxHtmlCanvas.html.......\....\...\.......\......\mxICanvas.html.......\....\...\.......\......\mxImageCanvas.html.......\....\...\.......\......\mxSvgCanvas.html.......\....\...\.......\......\mxVmlCanvas.html.......\....\...\.......\......\package-frame.html.......\....\...\.......\......\package-summary.html.......\....\...\.......\......\package-tree.html.......\....\...\.......\......\package-use.html.......\....\...\. (i).......\....\...\.......\..\class-use.......\....\...\.......\..\.........\mxCellCodec.html.......\....\...\.......\..\.........\mxCodec.html.......\....\...\.......\..\.........\mxCodecRegistry.html.......\....\...\.......\..\.........\mxModelCodec.html.......\....\...\.......\..\.........\mxObjectCodec.html.......\....\...\.......\..\.........\mxStylesheetCodec.html.......\....\...\.......\..\mxCellCodec.html.......\....\...\.......\..\mxCodec.html.......\....\...\.......\..\mxCodecRegistry.html.......\....\...\.......\..\mxModelCodec.html.......\....\...\.......\..\mxObjectCodec.html.......\....\...\.......\..\mxStylesheetCodec.html.......\....\...\.......\..\package-frame.html.......\....\...\.......\..\package-summary.html.......\....\...\.......\..\package-tree.html.......\....\...\.......\..\package-use.html.......\....\...\.......\layout.......\....\...\.......\......\class-use.......\....\...\.......\......\.........\mxCircleLayout.html.......\....\...\.......\......\.........\mxGraphLayout.html.......\....\...\.......\......\.........\mxIGraphLayout.html.......\....\...\.......\......\.........\mxPartitionLayout.html.......\....\...\.......\......\.........\mxStackLayout.html.......\....\...\.......\......\mxCircleLayout.html.......\....\...\.......\......\mxGraphLayout.html.......\....\...\.......\......\mxIGraphLayout.html.......\....\...\.......\......\mxPartitionLayout.html.......\....\...\.......\......\mxStackLayout.html.......\....\...\.......\......\package-frame.html.......\....\...\.......\......\package-summary.html.......\....\...\.......\......\package-tree.html.......\....\...\.......\......\package-use.html.......\....\...\.......\model.......\....\...\.......\.....\class-use.......\....\...\.......\.....\.........\mxCell.html.......\....\...\.......\.....\.........\mxCellPath.html.......\....\...\.......\.....\.........\mxGeometry.html.......\....\...\.......\.....\.........\mxGraphModel.Filter.html.......\....\...\.......\.....\.........\mxGraphModel.html.......\....\...\.......\.....\.........\mxGraphModel.mxChildChange.html.......\....\...\.......\.....\.........\mxGraphModel.mxCollapseChange.html.......\....\...\.......\.....\.........\mxGraphModel.mxGeometryChange.html.......\....\...\.......\.....\.........\mxGraphModel.mxRootChange.html.......\....\...\.......\.....\.........\mxGraphModel.mxStyleChange.html.......\....\...\.......\.....\.........\mxGraphModel.mxTerminalChange.html.......\....\...\.......\.....\.........\mxGraphModel.mxValueChange.html.......\....\...\.......\.....\.........\mxGraphModel.mxVisibleChange.html.......\....\...\.......\.....\.........\mxICell.html阅读有关说明.......\....\...\.......\.....\.........\mxIGraphModel.html虽然许多主要API是通过mxGraph类调用,记住mxGraphModel是存储您的图形数据结构的根本对象。