Кривая QtQuick pathCurve на событии щелчка мыши - PullRequest
0 голосов
/ 04 ноября 2019

Эй, разместив этот вопрос, вы узнаете, как изогнуть линию по щелчку, т. Е. Используя кривую пути, я хочу изогнуть линию, но не жестко закодировать ее, это происходит при событии щелчка мыши, например, если щелкнуть по (400 320), затем выполнить линию в этой позициипозиция изменится (скажем, +75), так как на изображении она жестко закодирована, но я хочу, чтобы кривая включалась везде, где происходит событие щелчка мыши, оно должно изгибаться

1 Ответ

2 голосов
/ 04 ноября 2019

Вот моя реализация. Это не совсем та форма, которую вы хотите. Кажется, что вы не можете получить что-то похожее на ваше изображение с помощью PathCurve, но наверняка у вас гораздо больше контроля над результатом с помощью PathCubic .

        Canvas {
            id: canvas
            width: 640; height: 640
            contextType: "2d"

            Path {
                id: myPath
                startX: 320; startY: 0

                PathCurve { id: curvePoint_top; x: 320; y: curvePoint.y - 80 }
                PathCurve { id: curvePoint; x: 320; y: 320 }
                PathCurve { id: curvePoint_bottom; x: 320; y: curvePoint.y + 80 }
                PathCurve { x: 320; y: 640 }
            }

            onPaint: {
                context.clearRect(0,0,width,height);
                context.strokeStyle = Qt.rgba(.4,.6,.8);
                context.path = myPath;
                context.stroke();
            }

            MouseArea{
                anchors.fill: parent
                onClicked: {
                    curvePoint.x = mouseX;
                    curvePoint.y = mouseY;
                    canvas.requestPaint();
                }
            }
        }
...