原文链接:Creating a Drawing Canvas in Flutter - 原文作者 Zaki 本文采用意译的方式 在 Flutter 中创建绘图应用程序是一个有益的过程,可以将用户交互和图像渲染相结合...在本文,我们将手把手构建一个简单的绘图画布,在画布上用户可以在画布上使用手指自由绘画并选择不同颜色的画笔。...@override bool shouldRepaint(covariant DrawingPainter oldDelegate) => true; } 类: DrawingPoints 目的:在画布中展示单个点...它使用 Canvas 对象中的 drawLine 方法,使用 DrawingPoints 中指定的绘制样式在连续点之间进行连线。...这个教程为在 Flutter 中创建交互式图形应用程序提供了坚实的基础。尝试更多的功能并自定义来扩展我们应用程序的能力。
JS实现获取鼠标在画布中的位置 效果展示 概述 本文讲解如何实现我们平时用的画布软件中,怎么获取的我们鼠标时刻在画布中的位置。...// 首先得到鼠标在页面中的坐标( e.pageX, e.pageY) // 其次得到盒子在页面中的距离(box.offsetLeft, box.offsetTop) /.../ 用鼠标距离页面的坐标减去盒子在页面中的距离, 得到 鼠标在盒子内的坐标 // 我们生活中常见的画布里面的那个获取鼠标的位置 就是这么实现的 var box = document.querySelector...// 首先得到鼠标在页面中的坐标( e.pageX, e.pageY) // 其次得到盒子在页面中的距离(box.offsetLeft, box.offsetTop) /.../ 用鼠标距离页面的坐标减去盒子在页面中的距离, 得到 鼠标在盒子内的坐标 // 我们生活中常见的画布里面的那个获取鼠标的位置 就是这么实现的 var box = document.querySelector
excelperfect 标签:Excel技巧 有时,我们不希望在形状中只是使用静态文本,例如想要显示计算的结果,该如何操作? 很简单! 如图1所示,想要在圆中显示动态的时间。...图1 选择形状圆,单击公式栏,输入=A1。按下回车键,此时单元格A1中的值就会显示在圆中。当更新单元格A1中的值时,形状圆中的值也会跟着更新。如下图2所示。...图2 这里,公式栏中的公式只能引用单个单元格,不能在公式栏中输入公式。然而,有一个变通办法。假设想在某形状中显示列表值之和。并且形状在工作表的第1行到第4行中显示。...可以这样操作: 1.将形状移开,并在单元格C2中建立一个公式来包含形状中的文本。...图3 注意,这种方法设置的形状中文本的更新仅当工作表重新计算时才更新。 假设在图表中添加了一个形状,如果希望形状中的文本来自单元格,则必须在单元格引用之前加上工作表名称。例如,=Sheet1!
标签:Excel技巧 “绘图”工具栏中的椭圆形工具很难使用。如果开始在单元格的左上角绘制矩形,形状将从该角开始。但是,如果在同一个点开始画一个圆,画的椭圆将不会完全包含单元格中的文本。...使用键盘键可以使绘制形状更加容易。 首先,要使椭圆成为一个完美的圆形,在绘制时要按住Shift键。使用Shift键还将强制矩形为正方形,强制三角形为等边三角形。 其次,圆形或椭圆形很难画。...为了在一个单元格周围绘制一个圆圈,必须从单元格外很远的地方开始。怎么知道要从多大程度上超出你的数据才能包括所有数据?一种解决方案是在绘制椭圆时按住Ctrl键(或按住Ctrl+Shift键绘制圆)。...如果要调整正方形的大小,在拖动角控制柄的同时按住Shift键,这将强制Excel保持纵横比不变。 如果需要制作许多大小相同的正方形,按住Ctrl键并拖动第一个正方形以制作相同的副本。...然后,可以在按住Ctrl键的同时单击两个正方形,然后按住Ctrl键并拖动以创建四个正方形。 注:以上技巧来自www.mrexcel.com,供参考。
在nodejs中创建cluster 简介 在前面的文章中,我们讲到了可以通过worker_threads来创建新的线程,可以使用child_process来创建新的子进程。...// 在本例子中,共享的是 HTTP 服务器。...一个工作进程在创建后会自动连接到它的主进程。 当 ‘disconnect’ 事件被触发时才会断开连接。...而本质上,worker.send在主进程中,这会发送消息给特定的工作进程。 相当于 ChildProcess.send()。在工作进程中,这会发送消息给主进程。...如果是在主进程中,那么可以使用worker.send来发送消息。
简介 在前面的文章中,我们讲到了可以通过worker_threads来创建新的线程,可以使用child_process来创建新的子进程。本文将会介绍如何创建nodejs的集群cluster。...// 在本例子中,共享的是 HTTP 服务器。...一个工作进程在创建后会自动连接到它的主进程。当 ‘disconnect’ 事件被触发时才会断开连接。...而本质上,worker.send在主进程中,这会发送消息给特定的工作进程。相当于 ChildProcess.send()。在工作进程中,这会发送消息给主进程。相当于 process.send()。...如果是在主进程中,那么可以使用worker.send来发送消息。
在IDEA中创建maven项目 现在的JavaWeb项目中,绝大多数都是采用的maven结构的项目,而对于maven支持的最好的IDE开发工具为IDEA,所以说我就以在IDEA上为例来进行maven...和往常一样,为了避免由于开发工具版本的不同所造成的困扰,我先讲我的开发工具版本号公布一下,我的开发工具版本号为IDEA-2017.2.16,如下图所示: 用IDEA创建maven项目的方法如下,...双击IDEA图标,进入的界面如下,在该页面中,点击箭头所示的“Create New Project”选项 在接下来的页面中会直接显示maven选项,由于我们索要创建的是一个最简单的maven...项目,所以说我们需要做的是勾选图示所示的“Create From Archetype”复选框,在下面的下拉选项中我们选择“quickstart”,之后点击【Next】 在接下来的面板中,我们填写...填写完之后,点击【Next】 在接下来的面板中选择本地的maven,选择完成后点击【Next】 比如说我的maven选择如下所示: 在接下来的慢板中填写项目名,比如说我的填写如下
在 React 中,可以通过以下几种方式来创建 ref: 1:使用 React.createRef() 方法: 在类组件中,可以使用 React.createRef() 方法来创建 ref 对象。...元素 } render() { return ; } } 2:使用回调函数方式: 另一种方式是使用回调函数形式的 ref,通过在组件中定义一个函数...3:使用 React.useRef() Hook: 在函数组件中,可以使用 React.useRef() Hook 来创建一个 ref 对象,并将其赋值给一个变量。...useEffect(() => { console.log(myRef.current); // 访问 DOM 元素 }, []); return ; } 在函数组件中...无论使用哪种方式,创建的 ref 对象都可以通过 .current 属性来访问引用的组件或 DOM 元素。
标签:Excel图表技巧,瀑布图 在Excel中很容易创建瀑布图,因为自Excel 2016就推出了瀑布图。然而,改变瀑布颜色稍微有点困难。...在刚开始选择数据并插入瀑布图时,没有被标记为“汇总”列,这意味着所有列都将是浮动的。我们可以两次单击应该为总计的列,这将选择该列。然后,在该列上单击鼠标右键,选择“设置为汇总”,如下图1所示。...图1 从图1中可以观察到,可以更改每个点的填充和轮廓。如果希望瀑布以橙色表示正,灰色表示负,可能会右键单击每一列并手动更改颜色。这是一种“笨”办法!并且,如果数据从正变为负,则颜色不会改变。...此时,可以单击功能区“页面布局”选项卡,再单击“主题”组中“颜色”下拉列表,选取其底部的“自定义颜色”。其中,着色1用于增加,着色2用于减少,着色3用于汇总。改变这三种颜色,瀑布图中的颜色就会改变。
仓库简介 随着创建的镜像日益增多,就需要有一个保存镜像的地方,这就是仓库。目前有两种仓库:公共仓库和私有仓库。...最方便的就是使用公共仓库上传和下载镜像,下载公共仓库中的镜像不需要注册,但上传镜像到公共仓库是需要注册的。...公共仓库中填写完成仓库的ID号、邮箱以及登录仓库的密码并在邮件中进行激活就可以上传自己的镜像。 那么怎么构建属于自己的私有仓库呢?可以使用registry来搭建本地私有仓库。...json文件后,一定要重启服务,不然后面可能会出错 创建容器并挂载 # docker create -it registry /bin/bash //创建容器 # docker ps -a //...67b98e15c857 # docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry //宿主机的/data/registry自动创建挂载容器中的
注意,worker_threads创建的是子线程,而child_process创建的是子进程。 在child_process模块中,可以同步创建进程也可以异步创建进程。...同步创建方式只是在异步创建的方法后面加上Sync。 创建出来的进程用ChildProcess类来表示。...子进程将会在message事件中,将该handle传递给Callback函数,从而可以在子进程中进行处理。...'connection', (socket) => { socket.end('由子进程处理'); }); } }); 可以看到子进程接收到了server handle,并且在子进程中监听...他们的区别就在于在windows的环境中,如果要执行.bat或者.cmd文件,没有shell终端是执行不了的。这个时候就只能以exec来启动。execFile是无法执行的。
在nodejs中创建child process 简介 nodejs的main event loop是单线程的,nodejs本身也维护着Worker Pool用来处理一些耗时的操作,我们还可以通过使用nodejs...注意,worker_threads创建的是子线程,而child_process创建的是子进程。 在child_process模块中,可以同步创建进程也可以异步创建进程。...同步创建方式只是在异步创建的方法后面加上Sync。 创建出来的进程用ChildProcess类来表示。...子进程将会在message事件中,将该handle传递给Callback函数,从而可以在子进程中进行处理。...他们的区别就在于在windows的环境中,如果要执行.bat或者.cmd文件,没有shell终端是执行不了的。这个时候就只能以exec来启动。execFile是无法执行的。
tke集群中服务包含service和ingress 本篇着重介绍service [upd0lgjzkp.png] 在k8s中 service是搭配着pod使用,service定义了一个服务的入口地址,通过访问...更具体的介绍请看文档:Service 接下来为大家展现创建一个nginx(deployment+service) 1.创建index.html文件 在集群节点中创建一个/app目录并且创建一个index.html...创建deployment + service 填写工作负载名,配置数据卷 [3mul3cqnwi.png] 选择对应的nginx镜像 选择对应的镜像版本,这里选择latest [2drl2ir3op.png...4层的公网CLB(负载均衡)映射80:80端口 [6g5k2w49z6.png] 创建完成后查看workload deployment界面 [查看nginx deployment ] 查看service...可以看到对应的service也创建了出来并且分配了ip 这里的ip分别对应的是 $ kubectl get service NAME TYPE CLUSTER-IP
在这篇文章中,我会指导你在 unity 的菜单中如何创建一个简单的暂停菜单。...在层级视图的 Canvas 上右键然后选择 UI -> Text。 当 text 组件被创建的时候,你会注意到你可以移动它,就像在 unity 中其他任何游戏对象一样。...如何创建你的按钮: 下面我门将会创建三个按钮。uinty 中已经内建了按钮组件,这可以让你在游戏中当按钮被按下的时候来响应某些事件。...在你的场景中创建一个空的游戏物体,命名为『_GM』 在层级视图中选中『_GM』然后在检视视图中选择『Add Component』 向下滚动并且选择『New Script』。...下面是关于本次教程的总结:希望你能更好地理解如何在 Unity 中创建用户界面。还有很多其他更复杂的 UI 组件,我没有在本文中讨论,我鼓励你去尝试使用它们,并且经历所有你觉得很酷的东西。
标签:Excel图表技巧 有时候,我们想将图表中的数据列悬浮呈现。本文介绍如何实现这样效果的技巧。 原始数据及想要创建的图表如下图1所示。...图1 步骤1:根据原始数据,整理用于创建图表的数据,如下图2所示。一个名为“隐藏”的列,计算出悬浮的高度,也就是前面显示的柱状的高度之后;一个名为“显示”的列,即绘制的可见柱状的高度。...图3 步骤3:单击底部选择隐藏系列,然后单击功能区新出现的“格式”选项卡“形状样式”组中的“形状填充——无填充”、“形状轮廓——无轮廓”,结果如下图4所示。...图4 如果要显示为箭头形状,则继续下面的步骤。 步骤4:单击功能区“插入”选项卡中的“插图——形状——箭头符号”,在图表附近绘制一个向上的箭头形状。...步骤5:单击选取箭头形状,按Ctrl+C复制箭头。 步骤6:单击图表中可见的柱形,这将选择所有柱形。按Ctrl+V进行粘贴,箭头将替换柱形。结果如下图5所示。 图5
生成指定范围内的随机数 这个是最常用的技术之一。程序员希望通过随机数的方式来处理众多的业务逻辑,测试过程中也希望通过随机数的方式生成包含大量数字的测试用例。...问题往往类似于: 如何随机生成 1~100 之间的随机数,取值包含边界值 1 和 100。 或者是: 如何随机生成随机的3位整数?...等等…… 以 Java 语言为例,我们观察其 Random 对象的 nextInt(int) 方法,发现这个方法将生成 0 ~ 参数之间随机取值的整数。...那么如果要获得区间 [1~100] 的随机数,该怎么办呢?稍微动动脑筋就可以想到:区间 [0, 100) 内的整数,实际上就是区间 [0, 99]。...产生不重复的给定范围随机数: nums[i] = (int)Math.round((new Random().nextInt(20) + 1));//随机的不同的整数生成
创建包含组件 在 angular 中, 所谓的包含就是在定义固定视图模板的同时, 通过 标签来定义一个可以放动态内容的位置。 下面就来实现一个简单的卡片组件。...ng-content> 为了能够在其它组件中使用, 需要在对应的 AppModule 中添加声明...AppModule 中添加声明。...使用卡片组件 在另外一个组件 AppComponent 中使用刚刚创建的卡片组件的话, 代码如下所示: <!...包含多个位置 使用 select 属性, 可以在一个组件中定义多个包含位置。 现在继续修改卡片组件, 允许页眉和页脚包含动态内容。 <!
标签:Excel图表技巧 问题:希望图表中对于比率为90或以上的呈现绿色,70至90的呈现黄色,低于70的呈现红色。可以在图表中设置条件格式吗?如下图1所示。 图1 示例数据如下图2所示。...在单元格E2中输入公式: =IF(B2<H2,B2,NA()) 向下拉复制公式至该列所有数据单元格。...在单元格F2中输入公式: =IF(AND(B2>=H2,B2<I2),B2,NA()) 向下拉复制公式至该列所有数据单元格。...在单元格G2中输入公式: =IF(B2>I2,B2,NA()) 向下拉复制公式至该列所有数据单元格。 最终整理后的数据如下图3所示。 图3 更清楚一些,每个单元格中的公式如下图4所示。...图4 选择单元格区域D1:G8,创建堆积柱形图。然后,选择每个系列,使用“设置数据系列格式——填充”来选择正确的颜色。最终的结果如上文图1所示。
我只是偶然发现了 GNOME 的一个新功能(对我来说是的):创建文档模版。...由于这类信息很少改变,你可以把它们添加到空文档中作为模板使用。...一天,在浏览我的 Linux 系统文件的时候,我点击了 模板(Templates)文件夹,然后刚好发现窗口的上方有一条消息写着:“将文件放入此文件夹并用作新文档的模板”,以及一个“获取详情……” 的链接...image.png 创建模板 在 GNOME 中创建模板非常简单。...有几种方法可以把文件放进模板文件夹里:你既可以通过图形用户界面(GUI)或是命令行界面(CLI)从另一个位置复制或移动文件,也可以创建一个全新的文件;我选择了后者,实际上,我创建了两个文件。
在这里,我将在c# . net中解释Windows服务。 1、Windows服务的介绍。 2、如何在c# . net中创建Windows服务。...InitializeComponent方法包含创建和初始化用户界面对象的逻辑,这些对象拖在表单的表面上,并提供表单设计器的属性网格。...步骤8 在这一步中,我们将实现一个计时器,并编写代码在给定的时间调用服务。我们将在文本文件中创建一个简单的写操作。 ?...步骤11 在命令提示符中启动下面的命令并按Enter。 cd C:WindowsMicrosoft.NETFrameworkv4.0.30319 ?...将在您的bin文件夹中创建一个日志文件夹。 如果您想卸载服务,请启动下面的命令。
领取专属 10元无门槛券
手把手带您无忧上云