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

图形编辑器开发:自定义光标

今天来讲讲如何在图形编辑器中使用自定义光标,并对光标其进行管理。...点击(pointer)光标,一根手指(食指,不是中指)伸出来是要干嘛,是为了试探,看到按钮就尝试点一下,表示某个区域是可点击的。...我们还需要一些 更具体的光标样式来向用户传递信息,比如: 旋转光标:表示图形可旋转。cursor 属性中没有旋转光标,勉强可用抓手工具做个平替; 支持任意度数的缩放光标。...就是有些光标是绘制在画布上的。 一个经典的例子就是 AutoCAD 的十字光标,这个十字的长度是可以设置的,可以相当长。 如果你修改操作系统的光标,那这个十字便会突破天际地显示到非绘制区域上。...此外,AutoCAD 的光标并不忠实跟随操作系统光标,比如有时候会吸附于某点不动,并基于它的位置显示下拉菜单,此时可以用真正的光标去点选。

33020

Android自定义EditText:手把手教你做一款含一键删除&自定义样式的SuperEditText

前言 Android开发中,EditText的使用 非常常见 本文将手把手教你做一款 附带一键删除功能 & 自定义样式丰富的 SuperEditText控件,希望你们会喜欢。 ?...需要具备的功能如下: 一键删除 丰富的自定义样式:左侧图标、删除功能图标、分割线 & 光标 样式变化。...// 原理:通过 反射机制 动态设置光标 // 1....// 需要考虑:当输入长度超过输入框时,所画的线需要跟随着延伸 // 解决方案:线的长度 = 控件长度 + 延伸后的长度 int x=this.getScrollX...(); // 获取延伸后的长度 int w=this.getMeasuredWidth(); // 获取控件长度 // 传入参数时,线的长度 = 控件长度 + 延伸后的长度

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

    Android自定义EditText:手把手教你做一款智能EditText(一键删除、自定义样式)

    前言 Android开发中,EditText的使用 非常常见 本文将手把手教你做一款 附带一键删除功能 & 自定义样式丰富的 SuperEditText控件,希望你们会喜欢。...需要具备的功能如下: 一键删除 丰富的自定义样式:左侧图标、删除功能图标、分割线 & 光标 样式变化。...// 原理:通过 反射机制 动态设置光标 // 1....// 需要考虑:当输入长度超过输入框时,所画的线需要跟随着延伸 // 解决方案:线的长度 = 控件长度 + 延伸后的长度 int x=this.getScrollX...(); // 获取延伸后的长度 int w=this.getMeasuredWidth(); // 获取控件长度 // 传入参数时,线的长度 = 控件长度 + 延伸后的长度

    1.3K30

    自定义View实战

    那就先拿第三个来吧 条形进度条-可拖动 分析:我们想要做一个类似的控件,需要考虑的问题不只是眼睛看的到的,看不到的就好比我只能点击小红球才可以滑动,我点击其他区域是不能有任何操作的,这个时候就要判断手指...线条 : 渐变颜色,线帽格式,长度,宽度设置,父布局宽高格式设置格式设置,子view宽高格式设置 球 :颜色,起始位置和终止位置要在线上,尺寸 在做之前我们先一个一个知识点解析,首先是线的渐变颜色,单独拿出...区域内部划分模块,逐一着色,如:区域1-100划分为4块,第一块1-25红色,26-50蓝色..。...void onDraw(Canvas canvas) { super.onDraw(canvas); setProgColor(colors); //绘制一条线...,所以,我们就认为down的坐标减去球的坐标差值最小(50内)才是我们想要的结果,这个时候我们再设置小球move的坐标(让小球跟随手指移动)。

    56420

    JS中的touch事件与canvas绘图

    changeTouches:表示从上一次触摸以来,发生了改变的touch对象的数组。 通过一个例子来区分一下触摸事件中的这三个属性: 用一个手指接触屏幕,触发事件,此时这三个属性有相同的值。...用两个手指同时接触屏幕,此时changedTouches有两个值,每一个手指的触摸点都有一个值 手指滑动时,三个值都会发生变化 一个手指离开屏幕,touches和targetTouches中对应的元素会同时移除...Touch.identifier 此 Touch 对象的唯一标识符. 一次触摸动作(我们指的是手指的触摸)在平面上移动的整个过程中, 该标识符不变. 可以根据它来判断跟踪的是否是同一次触摸过程....Cavas绘图 画线常用的有两种方式lineTo和quadraticCurveTo 用quadraticCurveTo绘制的线比较圆滑,但是每次都要全图绘制, 所以我先用的方式就是在画线的过程中用lineTo...,鼠标抬起或者触屏离开时重新进行全屏绘制,但是会突然一变,最后还是决定在光标移动中就不停的全部quadraticCurveTo绘制,这样也没有明显的慢,就决定用后来的这种方式了。

    7.6K41

    图形编辑器开发:最基础但却复杂的选择工具

    如果你对图形拾取的细节感兴趣,可以看我的这篇文章: 《如何在 Canvas 上实现图形拾取?》 隐藏和锁定的图形会被忽略,如果点的是组下的一个元素,要将整个组的所有元素都选中。...所以这也是它有时候也被叫做 移动工具 的原因。 移动的交互过程: 光标停留在已经被选中的图形上,按下鼠标不放; 然后拖拽鼠标,被选中图形跟随光标移动; 释放鼠标,表示移动到目标位置,移动结束。...代码核心实现: 移动前此时记录图形的位置,和起始位置; 拖拽时计算相对位移,更新图形的位置; 释放时重置状态,以及记录到历史记录中。...这样图形就能尽量靠近十字线(水平线+垂直线) 对齐到像素网格 对齐到网格,开启后,让图形在移动的时候,让图片尽量贴到网格线上。...此外,不同图形绘制工具可能会有它们独有的操作方式,这些都需要你根据图形的特性去设计。 看看 Figma 对不同图形的特殊控制点逻辑。

    37230

    python024_vim读取文件_从头复制到尾_撤销_重做_reg_寄存器

    Guido的简历 回忆上次内容 python 是Guido制作的语言 从Guido刚入职场 就开始的项目 python这个项目 一直跟随Guido Guido 曾经在 cwi cnri beopen...移动 首先保持 双手正位 用指定的手指 按键 第一行 第一个字符 g g 最后一行 G 按单词移动 向前移动 一个word单词 w 向后(back)移动一个word b 将光标移动到上图位置...寄存器状态 观察寄存器状态 键入:reg 默认寄存器""(两个双引号) 如红框所示 确实 是两行文本 其中的 ^J是回车 回车 切换回 正常模式 准备粘贴 小写p粘贴 当前光标...在 第1行第1列 按下p paste 含义 为 粘贴 在 第一行hello的 后面 粘贴了 两行代码 新代码 如红框所示 新代码 出现在 原光标行 (第1行) 的下面 可以让 新代码 粘贴在...大写P粘贴 u回来 undo 撤销一次 如下图所示 光标还是在 第1行第1列 按下P 注意此处是 大写P P 粘贴 新粘贴的代码 在光标位置上方 如红框所示 再P 再 在上面

    10810

    自定义View学习——仿QQ消息气泡拖拽黏连删除

    毕竟前人栽树后人乘凉,该控件又是通过手指触摸调用事件分发处理又是贝塞尔曲线的应用,多少目前能力有限,只有借鉴了。需要的文件图片请从文中提供的MessageBubbleView仿QQ消息控件下载。...参考博客:仿 QQ 未读消息气泡,可拖拽删除,粘连效果 参考博客中的实现思路: 首先我们需要两个圆,一个是在原点不需要跟随手指的圆,一个是跟随手指的圆,当用户开始点击时,绘制跟随手指的圆和圆上的未读消息数量...,同时在手指移动时,不停地判断两圆之间的距离是否超过我们所设定的最远距离,如果未超过这个距离,则在两圆之间,以两圆圆心的中间点为控制点绘制贝塞尔曲线,如果超过距离,则停止绘制贝塞尔曲线,两圆成独立状态移动...用户松开手指时,同样对两圆之间的距离进行判断,如在最远距离内,被拖动的圆自行回到原点,如超过最远距离,则在手指释放位置播放删除动画。 废话不多说,先看一下效果图: ?...贝塞尔辅助图.png 其中主要是对绘制onDraw()内做了修改,将圆替换成圆角矩形。加了判断当当前内容宽度小于设置的直径时画圆显示,当内容宽度大于等于直径时显示圆角矩形。

    1.5K30

    自学cad 零基础_零基础自学吉他的步骤

    7.设置对象捕捉、对象追踪 ①对象捕捉 在绘图过程中,可以使用光标自动捕捉到对象中特殊点,如端点、中点、圆心和交点等。是使用最为方便和广泛的一种绘图辅助工具。...默认选项为上,使用此选项绘制多线时,在光标下方绘制多线;使用选项无绘制多线,多线以光标为中心绘制;使用选项下绘制多线时,多线在光标上面绘制。...比例 该选项的功能是决定多线宽度是在样式中设置宽度的多少倍。在命令行输入S,命令行提示:输入多线的比例值。 样式 此选项的功能是为将要绘制的多线指定的样式。在命令行中输入ST。输入“?”...一般通过指定样条曲线的控制点和起点,以及终点的切线方向来绘制样条曲线,在指定控制点和切线方向时,用户可以在绘图区观察样条曲线的动态效果,这样有助于用户绘制出想要的图形。...可延伸对象必须是有端点的对象,如直线、多线等,而不能是无端点的对象,如圆、参照线等。 首先是指定延伸边界 再是选择要延伸对象   ④修剪图形: 可以将选定对象在指定边界一侧部分剪切掉。

    3K20

    波士顿动力新版人形机器人Atlas问世,纯电驱动

    它站立了一会儿,我们第一次清晰地看到它的头部 —— 一个环形灯围绕着原型屏幕。当 Atlas 离开镜头并走出画面时,躯干再次跟随头部 180 度旋转。...这意味着人形机器人新 Atlas 仍处于研发的早期阶段。波士顿动力公司目前给出的时间线是,电动版 Atlas 将于明年初在韩国现代汽车工厂里开始进行试点测试,并会在几年后全面投产。...新 Atlas 要依靠三个手指完成抓握并适应各种物体形状,同时具有丰富的机载传感功能。 有趣的是,新 Atlas 的头部看起来像一个圆形化妆镜。...今年二月,波士顿动力发布了一段视频,视频中可以看到液压版本的机器人与汽车支柱的交互。...Playter 表示:「我们在动态机动性方面拥有悠久的历史,这意味着我们很强大,而且我们知道如何在容纳较重的有效载荷的同时仍然保持巨大的机动性。

    14810

    鸿蒙开发实战案例:橡皮擦案例

    ,并定义其属性如路径对象、颜色混合模式和线宽以便动态修改。...); // 设置画笔线帽的样式,即画笔在绘制线段时在线段头尾端点的样式为半圆弧 this.pen.setCapStyle(drawing.CapStyle.ROUND_CAP);...组件的onTouch回调函数中,处理手指按下、移动和抬起事件,以便在屏幕上绘制或擦除路径。...手指按下时,如果是初次绘制,创建一个新的MyRenderNode节点currentNodeDraw并将其挂载到根节点上,否则在currentNodeDraw中重新添加路径,根据当前的选择状态(绘制或擦除...case TouchType.Down: { // 初次绘制时创建一个新的MyRenderNode对象,用于记录和绘制手指移动的路径,后续绘制时在已创建的currentNodeDraw中重新添加路径

    7310

    UWP 手绘视频创作工具技术分享系列 - Ink & Surface Dial

    而在手绘视频中,用户主动创作、体现个性化最重要的部分,就是用户用鼠标、手指触控或 Surface Pen 操作的文字和绘画了,相比鼠标和手指,Surface Pen 无疑是最适合创作的了。 ...on screen 时,圆形菜单会出现在 Dial 的周围,而且会跟随 Dial 移动,操作相当直观,而 off screen 时,圆形菜单会以较小的形式出现。...首先是 Surface Pen,它除了可以完成鼠标的操作,如点击等之外;对于手绘视频应用更重要的是,笔记书画的功能。...InkCanvas 绘制完成后,保存为 Ink 数据;2. 取出 Ink 数据,按照线条长度对拆分,保证每段线条不超过某个阈值,然后把拆分后的 Ink 序列传给 Win2D 去做动态绘制。...既包括了笔尖的轮廓,也包括他的填充,如圆珠笔的原型轮廓,钢笔的椭圆形轮廓;圆珠笔的完全不透明填充,铅笔的离散点填充,荧光笔的半透明填充。

    1.1K120

    Android 中心区域选中图表 WheelChart

    (在此感谢扔物线大神),觉得薄荷尺子的逻辑和这个需求很类似,就决定用自定义view来实现。...自定义属性的设置及使用 draw 绘制图表 触摸控制并处理多指触控问题(手指拖动图表可移动) 惯性滚动(根据手指释放时的速度计算图表需要滚动的距离) 回滚 (up时或者惯性滚动结束 需要回滚到选中位置...) 点击选中 (根据点击的坐标,计算需要选中的下标并选中) 处理嵌套滚动 1.自定义属性的设置及使用 在attr文件中声明该控件的一些自定义属性,在构造方法中解析,设置控件的属性即可 2. draw 绘制图表...绘制图表其实主要时数学问题,具体坐标的计算就不再赘述了 请教扔物线的时候,我问他会不会有性能问题,他就说了一点,屏幕外不要绘制 我们就只需绘制屏幕上用户看到的内容即可...,也可以分享动态给身边好友一起学习!

    83810

    使用React和Node构建实时协作的白板应用

    实时白板是一种动态数字工具,在在线环境中复制了传统白板的功能。它为个人和团队提供了一个共享画布,可以实时协作,允许创造、操作和可视化想法、概念和信息。...通过集成 RoughJS ,我们可以将普通的白板变成一个创意的游乐场,线条、形状和纹理以有机、手工制作的感觉栩栩如生。...在本文中,我们将介绍如何在白板上绘制线条和矩形。您可以在此基础上进一步了解并添加其他RoughJS支持的形状和功能。...如果两个条件都为真,则光标位于矩形上方,因此我们的函数返回true。如果元素是一条线,我们计算光标坐标与由元素的 x1 、 y1 、 x2 和 y2 属性定义的线段之间的距离。...(用于绘制的代码) } }; 更新元素坐标:在 handleMouseMove 函数中,当用户处于“移动”状态(即拖动元素)时,我们根据鼠标光标的位置和初始偏移量计算元素的新位置。

    62220

    SeismicPro地震剖面显示程序

    5)定制剖面的滚动间隔,剖面上显示的道号、极性等标签文本。 6)显示跟随鼠标的十字线 7)可显示剖面上任一两点之间的空间距离。...,曲线动态更新 注:程序需要GeoToolkit.NET 2.3(INT公司的产品)才可运行。...这四个按钮可以前滚、后滚相应的纵剖面。 在文本框中输入纵测线号,按回车键,则直接打开指定的纵剖面。 悬停在文本框上,则会提示纵测线号的范围。 ? 2.3 选择横测线 ?...双击Crossline标签,则打开工区的最小横测线。 ? 、 ? 、 ? 、 ? 这四个按钮可以前滚、后滚相应的横剖面。 在文本框中输入横测线号,按回车键,则直接打开指定的横剖面。...3.10 十字光标 因为剖面中显示的内容较多,有时找不到光标的位置,打开十字光标功能,可以清楚地定位光标的位置。点击 ? 按钮可跟随鼠标位置显示十字线,再按一次此按钮,可取消十字光标。 ?

    1.6K90

    图形编辑器开发:缩放和旋转控制点

    x/y,然后绘制。...光标 getCursor 返回的光标值是动态的,会因为包围盒的角度不同而变化,这里会有一个简单的转换。...关于自定义光标的实现方案,本文不深入讲解,会单独写一篇文章讨论。 坐标系 有个容易忽略的问题,就是控制点是绘制在哪个坐标系中的? 是场景坐标系,还是视口坐标系。...如果在场景坐标系中,图形会随画布的缩放或移动 “放大缩小”,比如一根 2px 的线条,在 zoom 为 50% 的画布下,显示的效果是 1px。 控制点的宽高是不应该跟随 zoom 而变化的。...如果你绘制在视口坐标系,宽高不需要考虑,只要转换一下 x,y。如果在场景坐标中,x、y 不用转换,但是宽高要除以 zoom。

    26730

    多模态人机交互国内研究进展

    近年,沉浸式大数据可视化得到了发展,浙江大学的探索了如图 1所示的无缝结合羽毛球比赛数据绘制的2D和3D可视化视图的问题,Chu等人(2022)探索了结合高度来凸显羽毛球数据中多个战术之间存在的差异性问题...该技术充分利用分析者对于分析对象的3维感知。在教学实验中,该技术可以辅助参与者有效地进行磁感线的交互式学习。近几年,国内围绕嗅觉、听觉等通道的成果还较为匮乏并落后于国外。...HiFinger是一种单手可穿戴的文本输入技术,可通过拇指对手指的触摸实现输入时的触觉反馈以及快速、准确、舒适地输入文本,适用于用户需要在虚拟环境中移动(如行走)的移动场景,有效地提供了一种混合现实环境中的输入解决方案...如提出一种基于转换的分割方法,利用一对接收器天线上的相位差方差作为显着特征,自动分割连续捕获的WiFi无线信号流中的所有跌倒和类似跌倒的活动。...要输入文本,用户可以转动表圈,用光标敲击圆形键盘上的键,为了最小化旋转距离,每个光标的位置在每次按键选择后根据需要下一个按键的概率进行动态优化。

    1.3K50

    灵活运用CSS开发技巧

    在线演示 使用:hover描绘鼠标跟随 要点:将整个页面等比划分成小的单元格,每个单元格监听:hover,通过:hover触发单元格的样式变化来描绘鼠标运动轨迹 场景:鼠标跟随轨迹、水波纹、怪圈 兼容:...在线演示 使用caret-color改变光标颜色 要点:通过caret-color根据主题颜色自定义光标颜色 场景:主题化 兼容:caret-color 代码:在线演示 ?...在线演示 使用linear-gradient描绘波浪线 要点:通过linear-gradient绘制波浪线 场景:文字强化显示、文字下划线、内容分割线 兼容:gradient 代码:在线演示 ?...在线演示 下划线跟随导航栏 要点:下划线跟随鼠标移动的导航栏 场景:动态导航栏 兼容:+ 代码:在线演示 ?...在线演示 动态边框 要点:鼠标悬浮时动态渐变显示的边框 场景:悬浮按钮、边框动画 兼容:gradient 代码:在线演示 ?

    4.6K20
    领券