如何不在同一水平垂直线上 有其他办法吗

动态 未结 0 133
小小草
小小草 LV1 2023年9月23日 23:40 发表
如果起点和终点不在同一水平或垂直线上,您可以使用 `d3-shape` 库中的 `curveBasis()` 方法来计算贝塞尔曲线的中心点。具体来说,您可以按照以下步骤进行操作: 1. 在 `Edge` 组件中,使用 `getBezierPath` 方法获取线的路径。例如: ```jsx import React from 'react'; import { Edge } from 'react-flow-renderer'; const MyEdge = ({ id, sourceX, sourceY, targetX, targetY }) => { const path = getBezierPath({ sourceX, sourceY, targetX, targetY }); return ( ); }; export default MyEdge; ``` 2. 使用 `path` 属性中的路径信息计算线的中心位置。具体来说,您可以使用以下公式计算贝塞尔曲线的中心点: ```jsx import React, { useMemo } from 'react'; import { Edge } from 'react-flow-renderer'; import { curveBasis } from 'd3-shape'; const MyEdge = ({ id, sourceX, sourceY, targetX, targetY }) => { const path = useMemo(() => getBezierPath({ sourceX, sourceY, targetX, targetY }), [sourceX, sourceY, targetX, targetY]); const [cx, cy] = useMemo(() => { const p = new Path2D(path); const curve = curveBasis(p); const length = curve.length(); const { x, y } = curve.centroid(length / 2); return [x, y]; }, [path]); return ( <> ); }; export default MyEdge; ``` 在这个例子中,我们使用
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 智能助手
0个回复
  • 消灭零回复
相关帖子
中国石化校园招聘笔试入围分数线 0
在资源密集的行业和内部结构复杂的大型企业中,官僚化管理形式非常适用。例如:制造业、公共服务机构和跨国企业等,因为它能够有效协调资源并降低内部消耗(Mintzberg, 2017)。 这里的内部消耗是什么意思,哪方面的消耗 0
为什么滥用市场支配地位行为会左右政府的市场规制法律和政策 0
入团志愿书包括对共青团的认识,入团动机,个人优缺点,决心和努力的方向 0
我想让你充当数学历史老师,提供有关数学概念的历史发展和不同数学家的贡献的信息。你应该只提供信息而不是解决数学问题。使用以下格式回答:“{数学家/概念} - {他们的贡献/发展的简要总结}。我的第一个问题是“毕达哥拉斯对数学的贡献是什么?” 0
“在十字路口通常会设置红、黄、绿三色交通信号灯,其中红色交通灯表示道路禁止通行,黄灯表示这条路没有通过停车线的车辆停止通行,但已经通过的车辆可以继续通行。同时,绿、红、黄交通灯可以通过自动控制改变通行状态。” 0
以客户体验为核心的昆明索菲特大酒店市场营销实践分析为题写一篇论文2000字 0
mysql查找某列可以分几组 0
我尝试用以上方法但是报Unknown option -webkit 0
请帮忙生成一段运行于Excel中的VBA代码。实现对指定两列信息间每行字符的差异数量,并生成至指定的位置。在excel中可能存在多组两列信息需要比对。希望一次运行可以全部输出 0