crossplatform.ru

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

> Фигуры Лиссажу, Вопрос по написанию
QMainWindow
  опции профиля:
сообщение 18.10.2010, 21:54
Сообщение #1


Участник
**

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

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




Репутация:   0  


Добрый день!
Вот подумываю написать по фану программу, генерирующая эти фигуры. Возникли 3 вопроса:
1. Какой класс лучше использовать? Здесь придется очень часто обновлять экран - 0-500ГЦ. Пейнтер, наверное, не подойдет.
2. С помощью чего обновлять экран. Можно отталкиваться от QTimer. Но рационально ли это?
3. Как сделать остаточный след на экране (как в осциллографе, даже если двигать точку медленно, то все равно будет заметна светимость следа)?

Заранее СПС.))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
QMainWindow
  опции профиля:
сообщение 27.10.2010, 22:32
Сообщение #2


Участник
**

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

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




Репутация:   0  


MainWindow::MainWindow()
{...
for(i=0; i<200; i++)
    {
        TraceBufferX.push_front(0);
        TraceBufferY.push_front(0);
    }
...
}

void MainWindow::Start()
{
    connect(timer, SIGNAL(timeout()), this, SLOT(NewFrame()));
    timer->start(10);
}

void MainWindow::NewFrame()
{
    TraceBufferX.pop_back();
    TraceBufferY.pop_back();
    TraceBufferX.push_front(R1*cos(w1*t+f1));
    TraceBufferY.push_front(R2*sin(w2*t+f2));
    t=t+dt;
    update();
}

void MainWindow::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.fillRect(2,2,506,506,QColor("#67b56c"));
    painter.setMatrix(QMatrix(1,0,0,-1,255,255));
    painter.setRenderHint(QPainter::Antialiasing, true);
    painter.setPen(QPen(QColor(255,0,0), 3, Qt::SolidLine, Qt::RoundCap));
    for(i=0; i<int(exp(w0/4.5)); i++)
    {
        painter.drawPoint(R1*cos(w1*(t-0.1*i)+f1), R2*sin(w2*(t-0.1*i)+f2)); //-- цикл
        //painter.drawLine(TraceBufferX.value(i), TraceBufferY.value(i), TraceBufferX.value(i-1), TraceBufferY.value(i-1)); //--либо линией рисовать
        //painter.drawPoint(TraceBufferX.value(i), TraceBufferY.value(i)); //--либо точками.
    }

}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- QMainWindow   Фигуры Лиссажу   18.10.2010, 21:54
- - ufna   1. обновления в Гцах - это уже для монитора вопрос...   18.10.2010, 21:58
- - QMainWindow   Гц - это я вспоминаю значения, стоявшие на осцилло...   18.10.2010, 22:28
- - ufna   я далек от осцилографов, но в графике имеют значен...   18.10.2010, 22:51
- - Алексей1153   никаких жутких ухищрений не нужно, компутер успеет...   19.10.2010, 6:22
- - Litkevich Yuriy   Цитата(QMainWindow @ 19.10.2010, 1:28) а ...   19.10.2010, 8:50
- - QMainWindow   А OpenGL? Или пейнтера с головой хватит?   19.10.2010, 17:02
- - Алексей1153   QMainWindow, ты сначала с QPainter сделай что-нибу...   19.10.2010, 19:13
- - QMainWindow   Привет всем! Короч только что написал прогу. В...   27.10.2010, 20:13
- - Алексей1153   QMainWindow, используй вектор std::vector<QLin...   27.10.2010, 20:18
- - QMainWindow   Сделал через вектор на 200 элементов - тормознуто...   27.10.2010, 22:14
- - kwisp   Цитата(QMainWindow @ 27.10.2010, 23:14) С...   27.10.2010, 22:20
- - QMainWindow   MainWindow::MainWindow() {... for...   27.10.2010, 22:32
- - kwisp   Цитата(QMainWindow @ 27.10.2010, 23:14) П...   27.10.2010, 22:41
- - QMainWindow   Сделал, чтобы не писать оператора if, когда нужно ...   27.10.2010, 22:49
- - Алексей1153   QMainWindow, я ж предложил кольцо сделать. Размер ...   28.10.2010, 0:17
- - QMainWindow   Вот: http://ifolder.ru/19986495 Код простой, подпи...   28.10.2010, 8:28
- - Алексей1153   QMainWindow, не открывается ссылка. Сделай проще -...   28.10.2010, 8:37
- - Алексей1153   QMainWindow, я скачал таки. Ищу драчовый напильник...   28.10.2010, 9:35
- - Алексей1153   вот, что у меня вышло. Правда, кольцевой буфер сод...   28.10.2010, 11:28
- - QMainWindow   Спасибо, а где собственно прикрепленный архив? Не...   28.10.2010, 20:39
- - Алексей1153   QMainWindow, хм, я , видать, забыл кнопочку нажать...   28.10.2010, 20:44
- - Алексей1153   ха, я понял, почему не прицепился файл. Дурацкое о...   29.10.2010, 6:47
- - Litkevich Yuriy   Тему разделил: О прикрепленых файлах   29.10.2010, 9:44
- - QMainWindow   Спасибо за прогу, посмотрел. Обнаружился интересны...   29.10.2010, 20:09
- - Алексей1153   QMainWindow, точно утверждать не могу, но, возможн...   29.10.2010, 20:45
- - Litkevich Yuriy   Цитата(Алексей1153 @ 29.10.2010, 23:45) Q...   29.10.2010, 21:37


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


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




RSS Текстовая версия Сейчас: 26.11.2022, 22:05