Как нарисовать линию из точки А в точку В?

Пытаюсь нарисовать линию из точки А в точку В, но почему-то не рисует.

Код:

Window {
    // вот тут переменные first tochka and dwa tochka
    property var cliced_x0 : 0;
    property var cliced_y0 : 0;
    property var cliced_x1 : 0;
    property var cliced_y1 : 0;
    property var bool_cliced : false;
    ...
    Canvas {
        id: canvas
        ...
        onPaint: {
            ...
            var ctx = getContext('2d')
            ctx.lineWidth = 1.5
            ctx.strokeStyle = canvas.color
            ctx.beginPath()
            ctx.moveTo(cliced_x0, cliced_y0)
            ctx.lineTo(cliced_x1, cliced_y1)
            ctx.stroke()
        }
        MouseArea {
            id: area
            anchors.fill: parent
            
            onClicked: {
                if (bool_cliced === false)
                {
                    cliced_x0 = mouseX;
                    cliced_y0 = mouseY;
                    bool_cliced = true;
                }
                if(bool_cliced === true)
                {
                    cliced_x1 = mouseX;
                    cliced_y1 = mouseY;
                    bool_cliced = false;
                }
            }
        }
    }
}

 

Ответы (1 шт):

Автор решения: timob256

тут мне дали ответ

В место этого кода:

if (bool_cliced == false)
{
cliced_x0 = area.mouseX;
cliced_y0 = area.mouseY;
bool_cliced = true;
}
if(bool_cliced == true)
{
cliced_x1 = area.mouseX;
cliced_y1 = area.mouseY;
bool_cliced = false;
canvas.requestPaint()
}

нужен такой :

if (bool_cliced == false)
{
    cliced_x0 = area.mouseX;
    cliced_y0 = area.mouseY;
}
else
{
    cliced_x1 = area.mouseX;
    cliced_y1 = area.mouseY;
    canvas.requestPaint()
}
bool_cliced = !bool_cliced;

В общем логика был не та . При любом клике выполняются оба ифа !!! так как они оба были истинны по этому и не отрисовывал

→ Ссылка