Cześć, muszę napisać funkcję, która będzie w Qt creator rysowała odcinek. Mianowicie gdy wcisnę LPM, trzymając go pojadę w inne miejsce i go puszczę to od punktu a ( wcisnięcia ) do punktu b ( puszczenia ) pokaże mi się odcinek.
Posiadam funkcję do rysowania pojedynczego pixela, ale niestety nie wiem jak ją zamienić na rysowanie odcinków.
Funkcja rysująca pixel:
void MainWindow::drawPixel(int x, int y, unsigned char red, unsigned char green, unsigned char blue)
{
unsigned char *wsk;
// sprawdzamy czy (x,y) leży w granicach rysunku
if(x>=0 && y>=0 && x<width && y<height)
{
wsk = img->scanLine(y);
wsk[4*x] = blue;
wsk[4*x+1] = green;
wsk[4*x+2] = red;
}
}
Funkcja MousePress:
void MainWindow::mousePressEvent(QMouseEvent *event)
{
int x,y;
// Pobieramy współrzędne punktu kliknięcia
x = event->x();
y = event->y();
// Współrzędne obliczane są względem głównego okna programu
// aby uzyskać współrzędne względem obszaru rysowania (ramki) musimy je przesunąć
// tak aby punkt (0,0) pokrywał się z lewym górnym naroznikiem obszaru rysowania
x = x - startX;
y = y - startY;
// Jeżeli wciśnięto lewy przycisk to zamolowujemy piksel na biało
if(event->button() == Qt::LeftButton)
{
drawPixel(x,y);
}
// a w przeciwnym wypadku na czerwono
else
{
drawPixel(x,y,255,0,0);
}
update();
}