- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Konva.js 在浏览器中对数据可视化进行注释。一个常见的用例是在形状(矩形、椭圆)和它的描述(文本节点)之间画线。线条需要由用户拖动、旋转和调整大小。调整大小仅限于线宽。
目前正在添加的线路及其变压器如下:
var line = new Konva.Line({
x: stage.getWidth() / 2,
y: stage.getHeight() / 2,
points: [0, 0, 100, 0],
stroke: '#000',
strokeWidth: 3,
lineCap: 'round',
lineJoin: 'round',
draggable: true,
id: id,
strokeScaleEnabled: false,
hitStrokeWidth: 15
});
layer.add(line);
var tr = new Konva.Transformer({
node: line,
enabledAnchors: ['middle-left', 'middle-right']
});
layer.add(tr);
目前正确定位一条线不是很直观,因为它需要用户使用旋转、左中和右中 anchor 分别旋转和调整线的大小。
相反,我正在寻找一种使用左中和右中 anchor 同时旋转和调整线条大小的方法。我对此的灵感来自 PowerPoint - 线条的两端只有 anchor ,可用于同时调整大小和旋转:
我尝试在 Konva 的 Transformer _handleMouseMove 函数中组合旋转器和中左/中右功能,但这并没有按预期工作。
有没有人可能找到了一种方法来使用左右 anchor 同时做两件事?
最佳答案
目前,我不建议将 Konva.Transformer
用于简单的线条。使用几个圆圈构建自定义解决方案很简单:
const line = new Konva.Line({
points: [50, 50, 250, 50],
stroke: 'green'
});
layer.add(line);
const anchor1 = new Konva.Circle({
x: line.points()[0],
y: line.points()[1],
radius: 10,
fill: 'red',
draggable: true
})
layer.add(anchor1);
const anchor2 = new Konva.Circle({
x: line.points()[2],
y: line.points()[3],
radius: 10,
fill: 'red',
draggable: true
})
layer.add(anchor2);
function updateLine() {
const points = [
anchor1.x(),
anchor1.y(),
anchor2.x(),
anchor2.y(),
]
line.points(points);
layer.batchDraw();
}
anchor1.on('dragmove', updateLine);
anchor2.on('dragmove', updateLine);
关于konvajs - 在 Konva.js 中调整和旋转具有相同 anchor 的线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55703336/
我目前正在关注 this guide在舞台上选择形状并将它们放入 Transformer 中。如果可能,我想拖动整个 Transformer 及其所有内容,而不触及内部的任何形状。 例如,我有两条相距
我目前正在尝试选择多个对象(特别是线条)并将它们添加到 组/变压器通过画一个盒子。为此,我遵循了这个非常有帮助的 stackoverflow question . 实现后,我对结果并不满意,因为即使我
我正在使用 KonvaJS 创建一个简单的图像编辑器。作为图像调整大小函数的基础,我使用了 Konva 示例 ( Knonva JS Image Resize ) 中的代码。但现在我正在努力实现裁剪功
我关注了the guide on making snapping rulers ,但我有额外的功能。问题是拖动阶段后,规则出现在错误的位置。 我尝试过寻找,但找不到任何可用于例如类似于偏移量的东西。这
我想要实现的是在自定义形状本身周围显示变压器。我直接从 API 文档中获取代码来创建自定义形状并添加变压器。转换器对于矩形、圆形等效果很好,但对于自定义形状,它似乎无法正确显示。 以下是演示应用程序的
我关注了the guide on making snapping rulers ,但我有额外的功能。问题是拖动阶段后,规则出现在错误的位置。 我尝试过寻找,但找不到任何可用于例如类似于偏移量的东西。这
是否有示例或方法可以在 konva Canvas 上围绕多个对象绘制一个框,并通过这样做来选择该框内的对象,并在它们周围使用某种指示器? 最佳答案 这是一个工作片段。如果用户选择向北或向东拖动,则使用
我想在我的 Canvas 上显示圆形裁剪图像,我正在使用 konvajs。 有什么办法可以在 konva 本身中做到这一点,或者 JS/CSS 有什么解决方法吗? 这是我用于加载图像的代码。 var
我有 2 个组,每组内都有圆形或矩形。我需要在单击时突出显示该组,并带有边框,以便用户知道哪个组处于事件状态。 最佳答案 有很多方法可以做到这一点。例如: group.on('click', () =
抱歉语法不好- 我对如何使用按钮触发器添加形状有疑问。但不起作用 这是我的代码:HTML Button Text 这是我的 js : function addRectangle(lay
因此,我正在使用 KonvaJS 和 KonvaReact 构建一个 UML 绘图工具,为此我需要将形状与线条连接起来。我在连接对象的网站上看到了教程https://konvajs.org/docs/
我正在使用 konvajs,需要一些帮助! 假设我需要一个可在复杂形状内拖动的图像。 我想知道是否可以使用 Konva.Group 而不是 ClipFunc 来使用 mask ,或者将 mask 图像
分离后如何保持组中形状的位置、旋转和缩放属性? 如果在用户移动或调整大小后分离组中的每个形状,旋转包裹在 Transformer 下的组,形状看起来会丢失更改的属性。 我尝试按照以下来源进行操作。
var group = new Konva.Group(); group.customProp = ['a', 'b', 'c']; group.toJSON(); 结果: { attrs:
我正在尝试使用 Konva.Rect 作为图像过滤器的叠加层。当使用具有透明色标的径向渐变时,在 IOS 模拟器上它工作完美但在设备上它无法识别透明并用纯色填充。 我尝试使用 transparent
我正在使用 KonvaJS 将矩形拖放到预定义的槽中。有些插槽需要旋转 90 度。我在垂直旋转的插槽周围有一个点击框,因此当用户将矩形拖到该区域时,它会自动旋转 90 度(以匹配方向)。当它旋转时,它
我正在使用 KonvaJS在我的项目中。我需要这样的箭头: 箭头将位于两个形状之间。形状是可拖动的。箭头线的长度应随着用户拖动形状而增加或减少。作为解决方法,我在此 plunkr 中使用了 Konva
我有一个简单的 KonvaJS 图像缩放/平移示例,现在我在单击鼠标时添加 anchor ,但问题是当缩放舞台以进行缩放时, anchor 也会变大。我想在舞台缩放时防止 anchor 缩放。 理想情
我在缩放 Konva.Image 时遇到了一些挑战。我想从它的中心点缩放图像。虽然我可以从中心缩放它,但我不确定这样做是否正确。目前它是从它的 top-left Angular 开始缩放的。为了从中心
下面是 Konvas.js (v 2.4) 中的基本生长效果,从图像的左上角开始 (https://codepen.io/simedia/pen/mzrvJq) var width = window.
我是一名优秀的程序员,十分优秀!