使用四段绘制贝塞尔曲线
Drawing bezier curve using four segments
我正在尝试绘制使用 4 个控制点绘制曲线的贝塞尔曲线。然而,当我 运行 我的程序时,用鼠标点击 4 次后我只看到一个像素被绘制,我的代码中是否遗漏了什么?我怎样才能让它正常工作?
void MyWindow::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
x0 = event->x();
y0 = event->y();
point.setX(x0);
point.setY(y0);
std::vector<QPoint> myv;
myv.push_back(point);
counter+=1;
std::cout<<counter<<std::endl;
if(counter%4==0) {
drawBezier(myv[0], myv[1], myv[2], myv[3]);
}
}
update();
}
myv
是局部变量,您不会将其状态保存到新的 mousePressEvent
获取一些“调试”信息并查看您在 drawBezier
函数中收到的信息。
我正在尝试绘制使用 4 个控制点绘制曲线的贝塞尔曲线。然而,当我 运行 我的程序时,用鼠标点击 4 次后我只看到一个像素被绘制,我的代码中是否遗漏了什么?我怎样才能让它正常工作?
void MyWindow::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
x0 = event->x();
y0 = event->y();
point.setX(x0);
point.setY(y0);
std::vector<QPoint> myv;
myv.push_back(point);
counter+=1;
std::cout<<counter<<std::endl;
if(counter%4==0) {
drawBezier(myv[0], myv[1], myv[2], myv[3]);
}
}
update();
}
myv
是局部变量,您不会将其状态保存到新的 mousePressEvent
获取一些“调试”信息并查看您在 drawBezier
函数中收到的信息。