저는 VueJS와 SVG를 사용하여 Sankey Diagram을 처음부터 구현하고 있습니다. 이제 노드에서 노드까지 두 개의 병렬 2 차 베 지어 곡선 경로의 경로를 닫는 데 어려움이 있습니다.
예를 들어 추가 계산을 통해 다음 경로를 얻었습니다.
path_1 = "M 35 20.39692701664535 q 162.53571428571428 0 325.07142857142856 64.01601512483994"
path_2 = "M 35 107.65044814340591 q 162.53571428571428 0 325.07142857142856 64.01601512483994"
경로는 이런 식으로 결합되어 작동 할 것이라고 생각하지만 실패합니다.
<g>
<template v-for="(point,index) in sankeyNode">
<template v-for="(pnode, idex) in Object.entries(point)">
<template v-for="(paths,idx) in pnode[1].paths" v-if="pnode[1].hasOwnProperty('paths')">
<g style="stroke-width:1;" stroke="black" fill="pink" :stroke-opacity="0.3">
<path :d="paths[0]+' '+paths[1]+' Z'" />
</g>
</template>
</template>
</template>
</g>
이 두 경로는 서로 평행하지만 결합 된 경로를 채울 수 있고 아래 이미지와 같이 보이도록 가까운 경로로 만들고 싶습니다.
현재 경로가 결합되면 다음과 같이 보입니다.
그림을 위해 아래 이미지를 사용하여 다음을 시도했습니다.
이제 Path2의 끝인 "Point A"에 도달하면 "Point B"에 수직선을 추가하여 "Point B"에서 "Point E"에 대한 2 차 베 지어 곡선을 형성하고 경로를 닫으려고했습니다. "Point C에서 E"까지 수직선을 추가하여 Path1에 대해 동일한 작업을 수행 한 다음 점 E에서 점 F로 2 차 베 지어 곡선을 형성하고 GCEF의 경로를 닫습니다.
내 시도가 작동하지 않았고이 문제를 해결하는 방법에 대한 단서를 찾기 위해 SVG 문서를 다시 읽고 있습니다.
이 문제를 해결하는 방법에 대한 단서를 줄 사람이 필요합니다. 감사
두 경로가 왼쪽에서 시작하기 때문에 두 번째 경로를 반대로해야 오른쪽에서 시작됩니다. 다음으로 경로의 2d 속성을 결합하고 두 번째 경로의 M 명령을 L (줄)로 대체했습니다. 또한 끝에 z 명령을 추가하여 경로를 닫았습니다. 이것이 당신이 필요로하는 것이기를 바랍니다.
<svg viewBox="0 0 400 200">
<path d = "M 35 20.39692701664535 q 162.53571428571428 0 325.07142857142856 64.01601512483994
L360.07142857142856,171.66646326824585Q197.53571428571428,107.65044814340591 35,107.65044814340591
z"/>
</svg>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다