diff --git a/QT/bezier_1/mywindow.cpp b/QT/bezier_1/mywindow.cpp index bae52b6..a82ca7b 100644 --- a/QT/bezier_1/mywindow.cpp +++ b/QT/bezier_1/mywindow.cpp @@ -74,6 +74,8 @@ void MyWindow::on_segmentSlider_valueChanged(int val) segment_count = val; QString str(("Ilosc segmentow: " + std::to_string(segment_count)).c_str()); ui->segmentLabel->setText(str); + DrawBezier(); + update(); } @@ -292,6 +294,17 @@ void MyWindow::DrawCircle(int x1, int y1, int x2, int y2){ } } +void MyWindow::DrawSquare(int x, int y, int size, QColor color){ + size /= 2; + for(int x1 = x - size; x1 < x + size; x1++){ + for(int y1 = y - size; y1 < y + size; y1++){ + if(x1 >= szer || y1 >= wys || x1 < 0 || y1 < 0) + continue; + DrawPixel(img, x1, y1, color); + } + } +} + void MyWindow::DrawEllipse(int x1, int y1, int x2, int y2){ if(x2 >= szer || y2 >= wys || x2 < 0 || y2 < 0) return; @@ -324,7 +337,7 @@ void MyWindow::DrawEllipse(int x1, int y1, int x2, int y2){ void MyWindow::DrawBezier(){ ClearImage(img); for(int i = 0; i < bezier_points.size(); i+=1){ - DrawPixel(img, bezier_points[i].x, bezier_points[i].y); + DrawSquare(bezier_points[i].x, bezier_points[i].y, 15, QColor(255, 0, 0)); } for(int i = 1; i < bezier_points.size(); i+=3){ if(i + 2 >= bezier_points.size()) diff --git a/QT/bezier_1/mywindow.h b/QT/bezier_1/mywindow.h index 6a94449..03884bb 100644 --- a/QT/bezier_1/mywindow.h +++ b/QT/bezier_1/mywindow.h @@ -125,6 +125,7 @@ private: void DrawLine(int x1, int y1, int x2, int y2, QImage *img); void DrawCircle(int x1, int y1, int x2, int y2); void DrawEllipse(int x1, int y1, int x2, int y2); + void DrawSquare(int x, int y, int size, QColor color = QColor(255,255,255)); void DrawBezier(); void ClearImage(QImage *img); void UpdateTempImage();