GoJs图形绘图模板Shape示例详解

以下是关于“GoJs图形绘图模板Shape示例详解”的攻略。

什么是GoJs图形绘图模板Shape

GoJs图形绘图模板Shape是一个JavaScript图形库,它可以用于创建各种可交互的图形,包括流程图、组织结构图、网络拓扑图等。

Shape模板示例1

下面我们来看一个GoJs Shape模板的示例,该示例用于创建带有箭头的线条。首先,我们需要定义一个Shape模板:

$(go.Shape,
  {
    name: "ARROW",
    fill: null,
    desiredSize: new go.Size(8, 8),
    stroke: "black",
    strokeWidth: 1.5,
    strokeJoin: "miter",
    strokeCap: "butt"
  },
  new go.Binding("angle").makeTwoWay(function(a) { return a - 90; }),
  new go.Binding("geometry", "", function(shape) {
    if (shape === "arrowUp") return ARROW_UP;
    if (shape === "arrowDown") return ARROW_DOWN;
    if (shape === "arrowLeft") return ARROW_LEFT;
    return ARROW_RIGHT;
  }),

上述代码中定义的Shape模板是一个带有箭头的线条,我们可以通过不同的shape参数来修改箭头的方向。例如,shape为"arrowUp"时箭头方向为向上。

在绘图过程中,我们可以使用go.Diagram对象创建图形元素并添加Shape模板:

myDiagram.add(
  $(go.Link,
    { routing: go.Link.Normal, curve: go.Link.Bezier },
    $(go.Shape,  // 线条部分
      { strokeWidth: 2 },
      new go.Binding("stroke", "color")),
    $(go.Shape,  //箭头部分
      { fill: "black", stroke: null, scaling: { scale: 3 } },
      new go.Binding("fromArrow", "fromArrow"),
      new go.Binding("toArrow", "toArrow")),
    $(go.TextBlock,  // 文字部分
      { margin: 8, editable: true },
      new go.Binding("text").makeTwoWay())
  )
);

上述代码中的图形元素是一个连线,包含用于绘制线条、箭头和文字的Shape模板。

Shape模板示例2

下面我们再来看一个GoJs Shape模板的示例,该示例用于创建带有不同颜色的方形。

$(go.Shape,
  {
    name: "SHAPE",
    stroke: "black",
    strokeWidth: 1.5
  },
  new go.Binding("fill", "", function(shape) {
    if (shape === "red") return "red";
    if (shape === "green") return "green";
    if (shape === "blue") return "blue";
    if (shape === "yellow") return "yellow";
  }),

上述代码中定义的Shape模板是一个方形,我们可以通过不同的shape参数来修改方形的颜色。例如,shape为"red"时方形颜色为红色。

在绘图过程中,我们可以使用go.Diagram对象创建图形元素并添加Shape模板:

myDiagram.add(
  $(go.Node,
    "Auto",
    $(go.Shape,  // 方形部分
      {
        fill: "white",
        stroke: "black",
        strokeWidth: 2,
        width: 70,
        height: 70
      },
      new go.Binding("fill", "color", function(color) { return color; })),
    $(go.TextBlock,  // 文字部分
      { margin: 8, editable: true },
      new go.Binding("text").makeTwoWay())
  )
);

上述代码中的图形元素是一个节点,包含用于绘制方形和文字的Shape模板。

总结

GoJs图形绘图模板Shape提供了多种可定制的图形,可以帮助我们快速创建各种可交互的图形。通过上述示例,我们可以了解如何定义和使用Shape模板,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:GoJs图形绘图模板Shape示例详解 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • jquery实现的导航固定效果

    针对“jquery实现的导航固定效果”,我可以提供以下的攻略: 一、什么是jquery导航固定效果 jquery导航固定效果是指将网页导航部分固定在页面的某个位置,随着页面的滚动不会随之滚动而是固定在页面上。这样做的好处是,在用户向下浏览页面时,无论滚动到哪里,都可以随时点击导航栏中的链接,从而方便用户快速访问网站的其他内容。 二、实现过程示例 接下来我们来…

    css 2023年6月10日
    00
  • CSS世界–代码实践之图片alt信息呈现

    下面是“CSS世界–代码实践之图片alt信息呈现”的完整攻略。 什么是图片alt信息? 图片alt信息是指用于描述图片内容的文本信息。这个信息通常被放置在img标签的alt属性中,比如: <img src="picture.jpg" alt="这是一张图片"> 在这个例子中,alt属性的值是“这是一张图片…

    css 2023年6月11日
    00
  • 利用label标签和CSS美化文件上传表单(不兼容IE6)

    下面我将详细讲解“利用label标签和CSS美化文件上传表单(不兼容IE6)”的完整攻略: HTML部分 首先,我们需要在HTML中定义一个文件上传表单,并使用label标签包裹住文件上传按钮。 示例代码: <form> <label for="file-upload" class="custom-file-u…

    css 2023年6月11日
    00
  • 微信小程序如何调用新闻接口实现列表循环

    下面我将为您详细讲解如何使用微信小程序调用新闻接口实现列表循环。 第一步:准备工作 在网上找到一些开放的新闻接口,例如聚合数据提供的头条新闻接口; 在微信公众平台注册并获取小程序的AppID和AppSecret,并在小程序后台配置好接口安全域名。 第二步:调用接口 在微信小程序中,我们可以使用wx.request()方法调用接口。具体方法如下: wx.req…

    css 2023年6月10日
    00
  • 使用Visual Studio进行文件差异比较的问题小结

    使用Visual Studio进行文件差异比较的问题小结 1.为什么使用Visual Studio进行文件差异比较? Visual Studio可以快速的比较两个文件的差异,并且提供直观的修改视图,可以方便的定位并修改文件中的问题。将Visual Studio作为默认的差异比较工具,可以方便的进行文件比对,特别是对于代码文件进行比对和合并操作,可以提高代码的…

    css 2023年6月10日
    00
  • css圆角三角形的实现代码

    实现一个圆角三角形的样式可以通过伪元素 ::after 或 ::before 实现,以下是实现的步骤: 在 CSS 中,先定义一个具有宽和高的元素,将其位置设置为相对定位 position: relative;。 通过伪元素 ::after 或 ::before,为该元素添加一个“三角形”的内容,同时将该伪元素设置为绝对定位 position: absolu…

    css 2023年6月10日
    00
  • div中加入span右对齐后出现换行显示两种解决思路

    让我来详细讲解一下“div中加入span右对齐后出现换行显示两种解决思路”。 首先,我们先来看一下问题的具体描述。 当我们在一个 div 中加入一个 span,并在 CSS 中给该 span 设定为右对齐时,如果 div 宽度不足以容纳该 span,那么就会出现换行的情况。我们希望解决这个问题,使得该 span 仍然可以右对齐,且不会出现换行的情况。 接下来…

    css 2023年6月10日
    00
  • jQuery 打造动态渐变按钮 详细图文教程

    jQuery打造动态渐变按钮详细图文教程 简介 本教程将带您详细了解如何使用jQuery和CSS打造一个动态渐变按钮。该按钮拥有鼠标悬停、点击等交互效果,并且可以自定义按钮的颜色和渐变方式。 准备工作 在开始之前,请确保您已经了解了以下知识: HTML / CSS 基础 JavaScript / jQuery 基础 了解如何使用CSS3渐变 HTML结构 首…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部