Как нарисовать линию из точки А в точку В?
Пытаюсь нарисовать линию из точки А в точку В, но почему-то не рисует.
Код:
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;
В общем логика был не та . При любом клике выполняются оба ифа !!! так как они оба были истинны по этому и не отрисовывал