提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:杨鹏连|2020-07-23 11:23:36.183|阅读 323 次
概述:本页介绍如何通过GoJS Geometry类控制一个形状的“形状”,Shape.fill和Shape.stroke和其它形状属性控制颜色和形状的外观。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
GoJS是一款功能强大,快速且轻量级的流程图控件,可帮助你在JavaScript 和HTML5 Canvas程序中创建流程图,且极大地简化您的JavaScript / Canvas 程序。
几何路径字符串
GoJS Geometry类控制一个形状的“形状”,而Shape.fill和Shape.stroke和其它形状属性控制的颜色和形状的外观。对于常见的形状图形,可以通过设置Shape.figure来使用预定义的几何形状。但是,也可以定义自定义几何形状。
可以通过分配和初始化至少一个包含一些PathSegment的PathFigure的Geometry来构造任何Geometry 。但是您可能会发现,使用Geometry的字符串表示形式更容易编写并将其保存在数据库中。使用静态方法Geometry.parse或Shape.geometryString属性将几何路径字符串转换为Geometry对象。
几何路径字符串语法
几何路径字符串的语法是SVG路径字符串语法的扩展。该字符串由许多命令组成,每个命令后跟一个特定于字母的数字参数,每个字母为一个字母。
以下是可能的命令以及它们采用的参数。参数符号(x y)+表示该命令恰好需要两个参数,但是每个命令可以有一组或多组参数。例如,该L (x y)+命令可以写为L 10 10 20 20表示两个直线段。
用大写字母写的命令表示绝对坐标;小写命令指定相对于最后一个命令的坐标。一些命令不关心大小写,因为它们不将坐标用作参数。
M(xy)+移动命令在PathFigure中开始一个新的子路径。一个对于开始PathFigure必不可少的,因此必须是路径字符串中的第一个段类型,但F可以在它之前的Fill命令(F)除外。
移动命令的其他参数集自动视为行命令,因此M 10 10 20 20与相同M 10 10 L 20 20。
L(xy)+直线命令将从上一个点到新点的直线段添加。
High(x)+水平线命令仅指定水平直线的x值。
V(y)+垂直线命令仅指定垂直直线的ay值。
Q(x1 y1 xy)+二次贝塞尔曲线。 x1,y1是控制点。有关更多详细信息,请参见SVG Quadratic Bezier命令。
T(xy)+简捷二次贝塞尔曲线。根据SVG的路径规则计算控制点。
C(x1 y1 x2 y2 xy)+三次贝塞尔曲线。 x1,y1并且x2,y2在控制点。有关更多详细信息,请参见SVG Cubic Bezier命令。
S(x2 y2 xy)+简捷三次贝塞尔曲线。根据SVG的路径规则计算两个控制点。
A (rx ry x-axis-rotation large-arc-flag sweep-flag x y)+椭圆弧。这些遵循SVG弧约定。
žZ表示当前段已关闭。它放置在子路径的最后一段之后。没有参数,此命令的大小写无关紧要。
有关SVG路径字符串的详细信息,请参见SVG路径上的W3C页面。
此外,还有一些特定于GoJS的令牌:
B(startAngle,sweepAngle,centerX,centerY,radiusX,radiusY)遵循GoJS canvas弧约定的弧。这些弧从子路径中的最后一个点到由五个参数定义的弧的第一个点之间创建一条新线。与所有其他带有参数的命令不同,B弧不允许使用多个参数集。
X在M命令之前使用,以表示单独的PathFigures而不是子路径。没有参数,此命令的大小写无关紧要。当每个图形部件需要不同的填充时,单独的PathFigures很重要。
F此命令的存在指定当前PathFigure是否已填充(如果F存在,则为true )。这被放置在图的开头。当前有一个可选参数被忽略。该命令的大小写无关紧要。
ü
此命令的存在指定当前的PathFigure是否被屏蔽(如果存在,则为falseU。默认的阴影为PathFigure)。仅当包含零件上的Part.isShadowed设置为true时,形状上的阴影(以及PathFigures上的阴影)才存在。这被放置在图的开头。该命令的大小写无关紧要
几何路径字符串示例
这是初始化Shape而不设置Shape.figure时几何路径字符串的简单用法:
diagram.add( $(go.Node, $(go.Shape, { geometryString: "F M120 0 L80 80 0 50z", fill: "lightgreen" })));
diagram.add( $ {go.Node, $ {go.Shape, { geometryString:“ F M0 0 L100 0 Q150 50 100 100 L0 100 Q50 50 0 0z”, fill:“ lightgreen” })));
diagram.add( $(go.Node, "Spot", $(go.Shape, { geometryString: "F M0 0 L80 0 B-90 90 80 20 20 20 L100 100 20 100 B90 90 20 80 20 20z", fill: "lightgreen" }), $(go.TextBlock, "custom shape") ));
diagram.add( $(go.Node, "Auto", $(go.Shape, { geometryString: "F M0 0 L.8 0 B-90 90 .8 .2 .2 .2 L1 1 .2 1 B90 90 .2 .8 .2 .2z", fill: "lightgreen" }), $(go.TextBlock, "custom shape", { margin: 4 }) ));
diagram.add( $(go.Part, $ {go.Shape, { geometryString: “ FM 0 0 l 30,30 10,10 35,0 0,-35 xm 50 0 l 0,-50 10,0 35,35 x” + “ fm 50 0 l 0,-50 10,0 35,35z”, strokeWidth:10,stroke:“ lightblue”,fill:“ gray” }) ));
前两个PathFigures是打开的;第一个和第三个数字已填充。该Z命令仅关闭其结束的PathFigure。
在下图中,我们使用包含四个PathFigures的路径字符串,其中两个具有阴影。请注意,如果包含的Part的Part.isShadowed设置为true ,则默认情况下图形会被阴影覆盖。为了使特定的路径图形没有阴影,我们使用U命令。diagram.add( $(go.Part, { isShadowed: true, shadowOffset: new go.Point(10, 10) }, $(go.Shape, { geometryString: "F M 0 0 l 30,30 10,10 35,0 0,-35 x u m 50 0 l 0,-50 10,0 35,35 x" + "u f m 50 0 l 0,-50 10,0 35,35z x m 70 0 l 0,30 30,0 5,-35z", strokeWidth: 8, stroke: "lightblue", fill: "lightcoral" }) ));
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢