微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获得用于创建折点的线段距离和线段权重的准确值?

如何解决如何获得用于创建折点的线段距离和线段权重的准确值?

我正在尝试为布局创建带有折弯的边。通常,我在图形中使用干草堆边缘,但是每当必须创建边缘弯曲时,边缘的曲线样式就会更改为线段。目前,我仅创建具有单个折弯的边。我已经尝试了this帖子中提供的代码,但未创建适当的边缘。目前,我正在使用cytoscape.js-edge-editing中的代码,因为它可以产生更好的结果。

主要问题是,导致折点在错误位置创建的线段距离值。由于上述提供的代码中的功能未创建正确的折点,因此正确的方法是什么?

示例问题如下所示:

必须在从n12到n15的边缘中创建一个边缘弯曲,其中n12是源。分段距离和分段权重的值显示在控制台中。线段距离为正值会在错误的位置创建弯折点。实际上,它应该位于n12的右侧和n15的顶部。

enter image description here

在另一种情况下,如下图所示,必须在n3和n2的边缘中创建边缘弯曲。这些节点的位置彼此非常相似,即n12和n15。它们的边缘具有与上图中的边缘相同的段距离和段权重值。但是,创建了折点(不准确),但是几乎在预期位置附近。而相同的路段距离值会在上一场景中的相反位置创建弯曲点。

enter image description here

我不明白为什么会这样。有人可以指导我如何解决此问题吗?

解决方法

请参阅edge-distances

edge-distances:使用值相交(默认)时,线段权重从源到目标的线是从源节点形状的外部到目标节点形状的外部。使用值node-position时,线是从源位置到目标位置。 node-position选项使计算边缘点更容易-但应谨慎使用,因为您可以创建交点会自动校正的无效点。

https://js.cytoscape.org/#style/segments-edges

相交点与节点中心点(位置)不同。

如果您想要直角的边缘,则应该只使用滑行边缘:https://js.cytoscape.org/#style/taxi-edges

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。