crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Вращающийся отрезок, Помогите создать вращающийся отрезок?!
Angisha
  опции профиля:
сообщение 9.7.2013, 23:02
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 9.7.2013
Пользователь №: 3878

Спасибо сказали: 0 раз(а)




Репутация:   0  


Подскажите пожалуйста, как реализовать вращающийся отрезок. Через цикл я создаю отрезки, после чего каждый закрашивается, тем самым получается эффект вращения эффект вращения. Но при запуске получаем конечный результат. Как сделать перерисовку окна или что можно еще сделать. Программист из меня не очень, так что пишите подробнее, пожалуйста)) так же кусочек программы(слот):
void MainWindow::on_action_9_activated()
{float i,j,r,x0,y0,x,y,t=360;
QGraphicsScene *scene = new QGraphicsScene(ui->graphicsView);
x0=ui->lineEdit_x0->text().toFloat();
y0=ui->lineEdit_y0 ->text().toFloat();
x=ui->lineEdit_x ->text().toFloat();
y=ui->lineEdit_y ->text().toFloat();
QPen pen1(Qt::green);
//scene->addLine(0,0,100,100,pen1);
r=sqrt((x-x0)*(x-x0)+(y-y0)*(y-y0));
for (j=0;j<10;j++)
{for (i=t-1;i>=0;i--)
{ scene->addLine(x,y,x+cos(i)*r,y+sin(i)*r,pen1);

??? - вроде как что-то нужно вставить сюда

QPen pen2(Qt::white);
scene->addLine(x0,y0,x0+cos(i)*r,y0+sin(i)*r,pen2);
ui->graphicsView->setScene(scene);}}}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 12.7.2013, 20:21
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 297
Регистрация: 23.6.2011
Пользователь №: 2765

Спасибо сказали: 45 раз(а)




Репутация:   3  


Цитата
Через цикл я создаю отрезки, после чего каждый закрашивается, тем самым получается эффект вращения эффект вращения. Но при запуске получаем конечный результат.

Просто первые 9 результатов вы не успеваете заметить, цикл отрабатывает очень быстро.
Нужно сделать исскуственную задержку. Используйте для этого QTimer, он через равные промежутки будет вызывать нужный слот. Координаты придеться хранить в классе.
Обычно закрашиваеться не только линия, но и вся область перерисовки. Но в данном случае не принципиально.
Цитата
Программист из меня не очень, так что пишите подробнее, пожалуйста))

Могу накидать пример с использованием QPainter, QGraphicsScene я не очень люблю.

Сообщение отредактировал ilyabvt - 12.7.2013, 20:23
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.4.2024, 5:26