Вопросы по Qpainter |
Здравствуйте, гость ( Вход | Регистрация )
Вопросы по Qpainter |
TiiL |
6.2.2012, 14:30
Сообщение
#1
|
Участник Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: 0 |
рисую график состоящий из точек(кружков):
Раскрывающийся текст
Всё хорошо рисует, но рисуется толстенная линия по оси X цвета того же что и drawEllips, где я задаю её рисовать? всё перепробовал( |
|
|
wiz29 |
6.2.2012, 16:30
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
приведи весь код процедуры рисования пожалуйста.
|
|
|
TiiL |
7.2.2012, 7:32
Сообщение
#3
|
Участник Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вот:
graph.zip ( 258,93 килобайт )
Кол-во скачиваний: 211
Сообщение отредактировал TiiL - 7.2.2012, 7:36 |
|
|
wiz29 |
7.2.2012, 9:29
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Привет, посмотрел твой код. Тебе нужно сделать следующее. Разделить вычисление данных графиков и представления. По коду можно разобрать что в конечно итоге тебе хочется построить, но подход в корне неверный.
1. Непонятно зачем держать не инициализированные изначально переменные
2. у тебя нет четко представления о связи математических координат с координатами представления (куда ты рисуешь) (если ты посмотришь на циклы, то там мягко говоря неимоверное кол-во ненужных итераций) Чтоб не тратить время опиши задачу, которую ты хочешь решить. Из функции рисования видно, что нужно построить графики на некоторой области, напиши математическую постановку задачи и тогда будет проще подсказать тебе как делать более правильно. |
|
|
TiiL |
7.2.2012, 10:04
Сообщение
#5
|
Участник Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо за отклик,wiz29.
1-ое хотелось бы просто научиться рисовать оси и на нём графики, дальше научиться рисовать логарифмические оси. 2-ое рисовать графики с данными значениями х и у, 3-ие чтобы оси и графики были связанны, а не так что оси показывают свои какие то числа, а график рисуется по своим числам. а дальше уже украшение этого всего скролами по осям, различными зумами, выделение точек координат например кружочками или како-нить другой бижютерией. |
|
|
wiz29 |
7.2.2012, 10:33
Сообщение
#6
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
А почему не хочешь использовать Qwt?
1-ое хотелось бы просто научиться рисовать оси и на нём графики, дальше научиться рисовать логарифмические оси. Для этого тебе нужно иметь математическое представление о том, что попадает на viewport, т.е. каким образом математическое описание пространства будет проецироваться на порт просмотра. Например, я хочу видеть видеть на экране порта просмотра (viewport'a) пространство с началом координат размещенном в центре окна, и интервалами по Х [-5;5] по Y[-10, 10] исходя из размера viewport я могу произвести нужные мне вычисления для отрисовки осей и сеток координат. Либо могу задать другое описание: например матрицей трансформации для преобразования реальных координат точек в координаты порта просмотра. Таких описаний можно много придумать. 2й способ наиболее близок к жизни. 2-ое рисовать графики с данными значениями х и у, Имея мат. представление о пространстве и определенных характеристиках порта просмотра мы можем вычислять значения (с нужным шагом) функций, которые используем для построения графиков. Шаг можно выбирать в зависимости от задач детализации или от информации о поведении функции, тут подходы могут быть различными. Например нет смысла вычислять точки чаще чем 1px на экране, если график задан аналитически и мы знаем функцию вычисления значений. 3-ие чтобы оси и графики были связанны, а не так что оси показывают свои какие то числа, а график рисуется по своим числам. а дальше уже украшение этого всего скролами по осям, различными зумами, выделение точек координат например кружочками или како-нить другой бижютерией. Ну бижутерия уже определяется специализацией софта как правило. |
|
|
TiiL |
7.2.2012, 10:40
Сообщение
#7
|
Участник Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: 0 |
мне кажется я с qwt еще больше закапаюсь и увязну(
всё что ты описал прокоментирую так: "Куда же я полез, я же даже читать не умею" Сообщение отредактировал TiiL - 7.2.2012, 10:55 |
|
|
wiz29 |
7.2.2012, 11:22
Сообщение
#8
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
ну к Qwt зря так относишься, неплохой framework для рисования графиков, задача рисования осей и меток к ним совсем не тривиальная как может показаться на первый взгляд. Советую использовать готовые решения, там где это можно, если они удовлетворяют требованиям.
|
|
|
TiiL |
7.2.2012, 12:20
Сообщение
#9
|
Участник Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: 0 |
ну вот нашел такой примерчик, ну вот проблема в дизайнере видны виджеты qwt, а в креаторе нет, а можно будет ли в дизайнере создать формочку но присоеденить к моему проекту чтобы я мог ссылаться на него?
вот так подключаю FORMS += qwtplot.ui .h:
.сср:
а выдаёт вот такое mainwindow.cpp: In constructor 'MainWindow::MainWindow(QWidget*)': mainwindow.cpp:5: error: invalid use of incomplete type 'struct Ui::qwtplot' mainwindow.h:13: error: forward declaration of 'struct Ui::qwtplot' mainwindow.cpp:7: error: invalid use of incomplete type 'struct Ui::qwtplot' mainwindow.h:13: error: forward declaration of 'struct Ui::qwtplot' вопрос снялся... буду изучать(ковырятсья) с qwt Сообщение отредактировал TiiL - 7.2.2012, 13:06 |
|
|
TiiL |
7.2.2012, 14:30
Сообщение
#10
|
Участник Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо, wiz29. Начал я играться с QWTвозникли конструктивные вопросы:
рисую кривые вот так так:
а вот curv2 (например) хочется рисовать не линиями а вот только кружочками, тоесть только координаты точек. как это реализовать? и второй вопрос: хотелось бы "нулевые" линии сетки графика выделить как-нить, как это сделать? |
|
|
Текстовая версия | Сейчас: 25.11.2024, 19:42 |