首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

十九、简易绘画板制作

一、学习目标 了解事件 编写一个简易绘画板 二、了解如何制作简易绘画板 2.1 了解鼠标多种事件 上一节我们简单的使用opencv的图形绘制方法,用鼠标绘制了一些内容。...上一节所响应的是简单的双击事件EVENT_LBUTTONDBLCLK,在OpenCV的鼠标事件中还有很多。...cv2.EVENT_MBUTTONDBLCLK: print('EVENT_MBUTTONDBLCLK 中键双击',' x:',x,' y:',y) 结果如下: 2.2 制作一个简单的绘画板...我们正常进行拖拽画矩形,一般是按下左键,并且不放手,移动鼠标进行矩形的绘制,直到拖拽至我们觉得合适的位置后,我们开始松开鼠标。 在以上的绘制行为中,一共有几个鼠标事件。...==27: break cv2.destroyAllWindows() 结果如下: 该系列首发于ebaina 三、总结 了解了多个鼠标事件 通过事件以及灵活运用绘图函数制作了一个简易的绘画板

1.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    手写原生代码专题 | 简易手写画板(二)

    大家好,本篇文章,小编将和大家完成一个手写画板的示例,这个例子比较简单只能画简单的线条,并能调节线条的粗细和颜色,还有一个清除的功能,具体示例如下视频所示: 一、基础知识复习 如视频所示,在这个示例中,...,如视频示例所示,一个画布、两个增加线条粗细的加减按钮、一个显示粗细数值的文本、一个调整颜色的 HTML5 控件、一个清除画布内容的按钮,由于代码比较简单,这里不过多解释,示例代码如下: <canvasid...四、编写JS脚本 最后进入代码的核心部分,编写 JS 脚本,这里我们只是简单的实现画直线,为啥会用画圆形的API,主要为了让线条更加有手绘的感觉,在画线停顿的地方,有停顿的点,以线条的粗细为半径的圆点。...x,y值,先以线条的宽度绘制圆形,然后以鼠标按下时的 x,y 的值为直线的起点,鼠标移动时获取鼠标的 x,y 值为终点绘制直线。...,想必大家都熟悉了如何手写一个简易的画布,基于这个基础我们可以增加更多的功能,比如三角图形、椭圆等形状的绘制,并能拖动形状,大家可以抽空完善下。

    1.5K20

    原 基于 HTML5 Canvas 的简易

    我们首先将所有需要用到的 json 文件作为矢量图输出,矢量图的好处是组件上的图元缩放都不会失真,并且不再需要为 Retina 显示屏提供不同尺寸的图片, 在 devicePixelRatio 多样化的移动时代...那么接下来的步骤就是创建“工具条”,HT 封装了工具条的组件 ht.widget.Toolbar 在这个函数的参数中填入工具条中的元素,具体操作方法请看 HT for Web 工具条手册,这边值得注意的一个点是...,groupId 是将一个类型的元素分组,分组的好处是在我们选中这个组中的任意一个元素的时候,其他的元素都不选中,就能造成“单选”的效果: toolbar = new ht.widget.Toolbar...,第三个参数为此类的方法 //这边重新绘制这个类的方法 } 接着就是向这个类中添加我们需要的功能,主要的功能是“鼠标点击事件的触发”以及“触摸屏幕事件的触发”,我们通过对事件的监听来绘制图形,首先就是判断鼠标左键或者触屏是否点击...HT 默认调用 ht.graph.DefaultInteractor 事件,里面有一系列的操作,我们现在要做的拖拽跟这个有冲突,所以在前面我们先将这个默认的事件阻止,获取鼠标点下的第一个点的逻辑坐标和第二个点的逻辑坐标

    1.1K40

    HTML5 - websocket的应用 之 简易聊天室

    B再给A回消息的原理同上三步骤 其中原始HTTP协议和H5新增Websocket协议不同的地方在于: “服务器发送消息给B”这里。...HTTP协议中,服务器是基于“请求 到 响应”的一个模型的 。也就是说,服务器无法主动发送消息给客户端,他必须接收一个请求才能响应。...在H5新增的Websocket协议中,实现服务器和客户端全双工的通信方式,两台机器之间只要握手成功(建立连接)后,就可以互相主动给对方发送消息。 就像我们现实中两个人聊天一样了。谁有话谁开口。...“聊天室”具体实现步骤: 初步应用代码见上篇《 HTML5 - 开发一个自己的websocket服务器》,主要记录了websocket怎么启动一个本地服务并应用的。...在之前代码的基础上,新增聊天室该有的广播内容、以及新增消息的append功能。

    4.9K21

    原生小案例:如何使用HTML5 Canvas构建画板应用程序

    使用HTML5 Canvas构建绘图应用是在Web浏览器中创建交互式和动态绘图体验的绝佳方式。HTML5 Canvas元素提供了一个绘图表面,允许您操作像素并以编程方式创建各种形状和图形。...绘图应用程序利用HTML5 canvas的功能,使用户能够以数字方式创建艺术作品、草图和插图。...此外,使用HTML5 canvas构建的绘图应用程序允许用户与画布进行交互,捕捉鼠标移动和点击事件,实时绘制、擦除或操作元素。...HTML5画布非常适合创建绘图应用程序,原因如下: 它提供了一个动态的绘图界面,可以实时更新。 它提供了丰富的绘图API,用于创建各种绘图工具和功能。 现代网络浏览器的原生支持。...结束 利用HTML5画布的绘图应用为艺术家、设计师、教育工作者和所有具有创造力的人打开了无限的可能性。

    52821

    基于 HTML5 Canvas 的简易 2D 3D 编辑器

    我们首先将所有需要用到的 json 文件作为矢量图输出,矢量图的好处是组件上的图元缩放都不会失真,并且不再需要为 Retina 显示屏提供不同尺寸的图片, 在 devicePixelRatio 多样化的移动时代...那么接下来的步骤就是创建“工具条”,HT 封装了工具条的组件 ht.widget.Toolbar 在这个函数的参数中填入工具条中的元素,具体操作方法请看 HT for Web 工具条手册,这边值得注意的一个点是...,groupId 是将一个类型的元素分组,分组的好处是在我们选中这个组中的任意一个元素的时候,其他的元素都不选中,就能造成“单选”的效果: toolbar = new ht.widget.Toolbar...,第三个参数为此类的方法 //这边重新绘制这个类的方法 } 接着就是向这个类中添加我们需要的功能,主要的功能是“鼠标点击事件的触发”以及“触摸屏幕事件的触发”,我们通过对事件的监听来绘制图形,首先就是判断鼠标左键或者触屏是否点击...HT 默认调用 ht.graph.DefaultInteractor 事件,里面有一系列的操作,我们现在要做的拖拽跟这个有冲突,所以在前面我们先将这个默认的事件阻止,获取鼠标点下的第一个点的逻辑坐标和第二个点的逻辑坐标

    2.3K70

    微信小程序|简单易上手的画板功能

    问题描述 大部分安卓用户的手机里是没有自带画板功能的,而在近期网课盛行之时,一个随手可用的手写面板,无论是在写笔记方面,还是在辅助授课方面,一个小画板就体现出了很大的作用。...图2.1 画板效果图 解决方案 1.了解canvas组件 小程序中画板功能可以通过canvas画布组件来实现,了解canvas组件的基本属性是实现画板功能的基础。...canvasIdErrorCallback"> 清除画板...); }, onLoad: function (options) { //画布初始化执行 this.startCanvas(); } }) 结语 此次的画板实现只是一个简单的手写面板的功能...,但是canvas的相关api非常多,能够实现的功能不局限于此,比如形状、填充、渐变、文字样式等非常多样,后续将会有更多功能实现的介绍。

    2K10

    前端-10款web动画插件

    2.基于Layui的可自定义添加删除数据的表格处理插件 如何在网页上编辑表格数据,这通过自己编写JS和CSS实现都是比较麻烦的,jQuery有很多插件可以完成这种功能,比如这款jQuery简易版的Excel...3.HTML5 Canvas模拟飞机航班线路动画 我们在网页中可以通过HTML5的Canvas画板绘制很多图形,甚至做许多动画特效,你可以在我们的HTML5 Canvas栏目中找到这些动画。...今天我们给大家带来另外一款基于HTML5 Canvas的飞机航班线路模拟动画,它模拟了许多航班在不同目的地的起飞降落数量。 ?...7.HTML5/CSS3超链接图片弹出动画 今天给大家分享一个基于HTML5和CSS3的超链接动画,这个HTML5应用还是比较实用的,它可以让你在鼠标滑过超链接时弹出图片,就像弹出tooltip那样的动画效果...这次我们同样再分享一款基于HTML5 Canvas的爱心表白动画特效,从视觉上看,它也是一个爱心轮廓,但是不同的是这个爱心轮廓由许多跳动的小爱心组成,更加有一种3D立体的效果,程序员的你就拿去用吧。

    5.9K50

    docker的简易教程

    虚拟机技术每家公司发展到一定规模都必须考虑的,更好的环境隔离,更好的事故排查,更好的服务部署 docker的原理 docker更换阿里源 docker容器的相关命令 Dockerfile文件编写 docker...镜像的相关命令 1 docker的原理 Docker 利用Linux 中的核心分离机制,例如Cgroups,以及Linux的核心Namespace(名字空间)来创建独立的容器。...Docker容器的本质还是一个直接运行在宿主机上面的特殊进程,看到的文件系统是隔离后的,但是操作系统内核是共享宿主机OS,所以说Docker是轻量级的虚拟化技术 docker 镜像分层 docker 容器...,理解为一个或多个运行进程,而这些运行进程将占有相应的内存,相应的CPU计算资源,相应的虚拟网络设备以及相应的文件系统资源。...而 docker 镜像,则像一个未运行的软件包,为 docker 容器的运行提供文件资源。 docker 镜像是分层的。启动镜像时,一个新的可写层会加载到镜像的顶层。

    39110

    手绘画板 – Excalidraw:简单高效的在线白板工具

    Excalidraw 是一款开源的在线白板应用,以其手绘风格和易用性赢得了众多用户的青睐。 什么是 Excalidraw?...Excalidraw 是一个基于浏览器的白板应用,专注于提供一种简单、直观的方式来创建草图和图表。它的设计理念是让用户在没有复杂工具的干扰下,快速表达创意。...这种功能极大地提升了团队远程工作的效率。 易于使用 界面简洁明了,只需简单的拖拽和点击即可创建复杂的图表。即使是初学者也能快速上手。...这确保了工具的持续改进和更新。 使用场景 头脑风暴:在团队会议中快速记录和分享想法。 流程图和原型设计:为项目创建简单的流程图和设计原型。 教学和演示:作为教学工具,帮助讲解复杂概念。...结论 Excalidraw 是一款功能强大且灵活的工具,适合不同领域的用户使用。无论你是设计师、教育工作者,还是需要进行团队协作的专业人士,Excalidraw 都能为你的工作带来便利和创意。

    32610

    简易云端Hosts的构建

    不过对我来说这也太复杂了,我想要的其实仅仅是一个简易的云端Hosts,它不需要太智能,差不多够用就行。 最终我的解决方案很简单:经纬度!...详细点说的话,客户端请求云端Hosts的时候,服务端通过IP判断客户端所属省份城市,然后计算出该地址的经纬度,进而和各个机房的经纬度做勾股定理运算,从而得出本线路里物理路径最近的机房。...网上有很多查询省份城市的IP库,推荐全球 IPv4 地址归属地数据库。有了省份城市,还要获取经纬度,好在百度、谷歌之类的大公司都提供了相应的服务。...不过如果每次请求都要通过服务查询经纬度的话,无疑是不可取的,幸运的是在忽略大陆板块漂移影响的前提下,经纬度基本是不变的,所以我们可以事先都查询好保存起来,如此一来的话还需要一份省市行政区划大全的数据,这个可以参考我以前写文章...最后返回IP地址;然而在查询推特的请求里,结果明显被篡改了,跳过了GTLD域名服务器和推特域名服务器,直接返回了假的IP地址,这正是DNS污染时的典型特征,大家下次遇到类似问题的时候试试吧!

    1.3K30

    搭建简易的docker集群

    今天又抽时间研究了一下如何搭建docker集群,终于找到配合consul、docker-machine、swarm搭建一个简易docker集群的办法,在这里记录一下。...--name consul 指定容器的名称为consul --restart=always 指定当容器退出时自动重启 -p 8400:8400 将容器的8400端口映射至docker host的8400...端口,这个是consul的RPC端口 -p 53:53/udp 将容器的UDP 53端口映射至docker host的UDP 53端口,这个是consul内置的DNS Server端口 -d 容器放在后台运行...-p 8500:8500 将容器的8500端口映射至docker host的8500端口,这个是consul的HTTP端口 -ui-dir /ui 启用consul的WebUI,访问地址为http://...,默认docker daemon创建的容器是使用docker0虚拟交换机实现网接接入的。

    1.8K50
    领券