Название: Не знаю с чего начать!!! Отправлено: Amidomaru от Июль 10, 2009, 08:21 Доброго всем времени суток!!! Передомной встала задача нарисовать на форме график синуса с вознможностью изменниеня масштаба, и отображением координат курсора. В QT Я не просто новичок я тут скорее ламер :'())) Приэтом нельзя использовать Qpainter. Подскажите с чего начать. Спасибо.
Название: Re: Не знаю с чего начать!!! Отправлено: BRE от Июль 10, 2009, 08:25 Приэтом нельзя использовать Qpainter. Хочу рисовать, но рисовальщиком пользоваться нельзя. ???Странное ограничение, с чем оно связано? Название: Re: Не знаю с чего начать!!! Отправлено: Amidomaru от Июль 10, 2009, 08:38 Короче Задание было выдано так чтобы в последствии из это заготовки мона было сделать осцилограф)
Ну или типа того) Вообще мне сказали что мол есть такой QГафик или вроде того, мол у Qpaintera на осцилогаф быстроты не хватит. Но пока надо просто Синус построить. Название: Re: Не знаю с чего начать!!! Отправлено: lit-uriy от Июль 10, 2009, 13:27 2 Amidomaru, рисуй QPainter'ом. А вот когда увидишь, что быстроты не хватает, так и отпишишся на форуме.
Название: Re: Не знаю с чего начать!!! Отправлено: kamre от Июль 10, 2009, 16:04 рисуй QPainter'ом. А вот когда увидишь, что быстроты не хватает, так и отпишишся на форуме. +1 QPainter c OpenGL pipeline очень быстро и достаточно качественно рисует на современных видеокарточках. Название: Re: Не знаю с чего начать!!! Отправлено: Amidomaru от Июль 14, 2009, 07:31 Так, Объясните что он от меня хочет?
#include <QtGui/QApplication> #include "traning.h" #include <Qpainter> int main(int argc, char *argv[]) { QApplication a(argc, argv); Traning w; w.show(); return a.exec(); QLineF line(40,40,60,60); QPainter(QPoint); painter.drawLine(line); painter.show; } Вывод компилятора: mingw32-make[1]: Entering directory `C:/QT_Progect/Traning' g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\Qt\2009.03\qt\include\QtCore" -I"..\..\Qt\2009.03\qt\include\QtGui" -I"..\..\Qt\2009.03\qt\include" -I"..\..\Qt\2009.03\qt\include\ActiveQt" -I"debug" -I"." -I"..\..\Qt\2009.03\qt\mkspecs\win32-g++" -o debug\main.o main.cpp main.cpp: In function `int qMain(int, char**)': main.cpp:12: error: `painter' was not declared in this scope mingw32-make[1]: Leaving directory `C:/QT_Progect/Traning' mingw32-make: Leaving directory `C:/QT_Progect/Traning' mingw32-make[1]: *** [debug/main.o] Error 1 mingw32-make: *** [debug] Error 2 Exited with code 2. Error while building project Traning When executing build step 'Make' Название: Re: Не знаю с чего начать!!! Отправлено: BRE от Июль 14, 2009, 07:49 Так, Объясните что он от меня хочет? Он хочет, что бы ты почитал assistant. ;)Название: Re: Не знаю с чего начать!!! Отправлено: Amidomaru от Июль 14, 2009, 07:52 Гм...
Это я и без него знаю. Но как говорится Май инглиш вери бед.))) ;D Название: Re: Не знаю с чего начать!!! Отправлено: BRE от Июль 14, 2009, 07:54 Гм... Ну так а примеров сколько.... ::)Это я и без него знаю. Но как говорится Май инглиш вери бед.))) ;D Название: Re: Не знаю с чего начать!!! Отправлено: Amidomaru от Июль 14, 2009, 07:57 Может кто-нибудь скинуть код проги где просто нарисованна прямая линия и всё.
Название: Re: Не знаю с чего начать!!! Отправлено: Amidomaru от Июль 14, 2009, 07:59 Для BRE У меня ассистента нет только Help и усё))
Название: Re: Не знаю с чего начать!!! Отправлено: BRE от Июль 14, 2009, 08:01 Может кто-нибудь скинуть код проги где просто нарисованна прямая линия и всё. Не забывай, что есть поиск по форуму. :)http://www.prog.org.ru/topic_8143_0.html Название: Re: Не знаю с чего начать!!! Отправлено: Amidomaru от Июль 14, 2009, 08:08 Эту тему я уже видал. Но правда я наверно еще тупее чем кажусь)
И всё же что ему в моём коде не навиться? Название: Re: Не знаю с чего начать!!! Отправлено: BRE от Июль 14, 2009, 09:43 И всё же что ему в моём коде не навиться? Компилятору не нравиться, то что он не знает QPainter -> #include <QPainter>.Следующее что ему не понравиться будет QPainter(QPoint) -> не знаю что ты хотел этим сказать. Дальше все что в main после слова return выполняться не будет -> return выход из функции main. Использовать QPainter можно в определенном месте, точнее в событии paintEvent или функциях которые вызываются из него -> рисовать можно в определенные моменты. Название: Re: Не знаю с чего начать!!! Отправлено: Amidomaru от Июль 14, 2009, 13:29 :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'(
Исправляю!!! Так вот что я исправил: #include <QtGui/QApplication> #include "traning.h" #include <QPainter> int main(int argc, char *argv[]) { QApplication a(argc, argv); Traning w; w.show(); QLineF line(100,140,160,160); QPainter(m); m.drawLine(line); m.end(); return a.exec(); } Компилятор не ругается но выводит просто форму. Название: Re: Не знаю с чего начать!!! Отправлено: denka от Июль 14, 2009, 13:41 В твоем случае это должен быть виджет на котором ты рисуешь
Название: Re: Не знаю с чего начать!!! Отправлено: denka от Июль 14, 2009, 13:43 :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( Так тебе ведь сказали что нужно рисовать только в определенных местахИсправляю!!! Так вот что я исправил: #include <QtGui/QApplication> #include "traning.h" #include <QPainter> int main(int argc, char *argv[]) { QApplication a(argc, argv); Traning w; w.show(); QLineF line(100,140,160,160); QPainter(m); m.drawLine(line); m.end(); return a.exec(); } Компилятор не ругается но выводит просто форму. Отнаследуйся от QWidget и переопредели там paintEvent Название: Re: Не знаю с чего начать!!! Отправлено: BRE от Июль 14, 2009, 13:59 Компилятор не ругается но выводит просто форму. А вот на эту фразу та внимание наверное не обратил? Цитировать Использовать QPainter можно в определенном месте, точнее в событии paintEvent или функциях которые вызываются из него -> рисовать можно в определенные моменты. Поэтому, нужно наследоваться например от QWidget. Переопределять paintEvent и в нем рисовать то, что хочешь. Или рисовать на QPixmap, а потом в paintEvent выводить его на виджет.Название: Re: Не знаю с чего начать!!! Отправлено: Amidomaru от Июль 16, 2009, 06:57 Всё У меня получилось.
Теперь вопрос такой! Я посмотрел на форуме но внятного ответа на вопрос как нарисовать поростую функцию синуса (например) не нашел. В одной статье написано что методом последовательного приближения или аппроксимацией. Но вроде есть и более простой вариант. Подскажите??? :-[ :-[ :-[ Название: Re: Не знаю с чего начать!!! Отправлено: lit-uriy от Июль 16, 2009, 07:33 возьми стандартную библиотечную функцию синуса, да получай значения
Название: Re: Не знаю с чего начать!!! Отправлено: Amidomaru от Июль 16, 2009, 07:37 библиотека??? Её подключать надо? Или она в главном модуле уже подключена?
Название: Re: Не знаю с чего начать!!! Отправлено: lit-uriy от Июль 16, 2009, 07:46 >>Может кто-нибудь скинуть код проги где просто нарисованна прямая линия и всё.
Есть пример посложнее, но может сильно пригодится: <QTDIR>\examples\painting\basicdrawing\ Название: Re: Не знаю с чего начать!!! Отправлено: lit-uriy от Июль 16, 2009, 07:55 библиотека??? Её подключать надо? Или она в главном модуле уже подключена? это стандартная библиотека СиКод: #include <math.h> Код: #include <cmath> Подробнее... (http://ru.wikipedia.org/wiki/Math.h) Название: Re: Не знаю с чего начать!!! Отправлено: Amidomaru от Июль 20, 2009, 06:19 Огромное спасибо всем тем, кто помогал в моём не лёгком деле.
Считаю эту тему закрытой. |