Я пишу программу для перемещения моего прямоугольника по заданному пути.Я закончил с прямой и диагональной линией, теперь я хочу обозначить точку в синусоиде, в которой мы можем дать частоту и амплитуду.
Мой код для прямой линии
void MainWindow::on_pushButton_Generate_clicked()
{
int velocity= MainWindowPtr->ui->horizontalSlider_speed->value();
printf("%d\n",velocity);
QTimer *timer = new QTimer;
// make the connection using the timer variable
connect(timer, &QTimer::timeout, this, &generate_video);
// start the timer object by first dereferencing that object first
timer->setInterval(velocity);
timer->start();
}
void generate_video()
{
imageBack= imread(filenameImg);
cvtColor(imageBack, imageBack, cv::COLOR_RGB2GRAY);
rectangle(imageBack,Point(initialX,initialY),Point(initialX+widthImg,initialY+heightImg),Scalar(intensity),-1,8,0);
imshow("image",imageBack);
if(MainWindowPtr->ui->radioButton_TrajLine->isChecked())
{
if(initialX>640)
initialX=0;
else
initialX+=1;
}
}
Теперь для синуса я пытаюсь что-то вроде этого:
for (xSin=0;xSin<100;xSin++){
ySin[(int)floor(xSin)]=10 + 10*sin(2*.1*3.14*xSin);
rectangle(imageBack,Point(xSin,ySin[xSin]),Point(xSin+widthImg,ySin[xSin]+heightImg),Scalar(intensity),-1,8,0);
}
Но ничего не происходит.Я использую язык C в QT на Ubuntu.