Рисование графиков нелинейных функций, Какие есть стандартные инструменты? |
Здравствуйте, гость ( Вход | Регистрация )
Рисование графиков нелинейных функций, Какие есть стандартные инструменты? |
QMainWindow |
4.9.2010, 23:16
Сообщение
#1
|
Участник Группа: Участник Сообщений: 198 Регистрация: 1.8.2010 Пользователь №: 1922 Спасибо сказали: 0 раз(а) Репутация: 0 |
Добрый день! Вопрос в названии темы. Под стандартными инструментами подразумеваю QPainter и все что с ним связано. Можно конечно взять некоторую функцию, выбрать шаг дискретизации и записать полученные значения в массив, а потом отобразить его. Но это изврат. Может как-то использовать кривые Безье? Правда понятия не имею, как на них рисовать корень, параболу, лог и тд... Если кто рисовал функции через QPainter, подскажите как!
|
|
|
Алексей1153 |
5.9.2010, 10:00
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
QMainWindow, абсолютно всё рисуется "через QPainter" (вернее - через инкапсулированные в нём API ОС). И именно изврат с записью в массив, а потом только отображением - позволяет повысить производительность программы
Задай конкретные вопросы |
|
|
QMainWindow |
5.9.2010, 18:52
Сообщение
#3
|
Участник Группа: Участник Сообщений: 198 Регистрация: 1.8.2010 Пользователь №: 1922 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ну вот вопрос: как нарисовать, например, параболу? Я, честно говоря, знаю только один способ - взять нужный отрезок, разбить его, используя шаг разбиения ~0.001 или ~0.0001, создать double массив, в цикле записать координаты x и y=x^2, а потом отобразить его по точкам через метод drawLines(). А других методов нет?
|
|
|
Алексей1153 |
5.9.2010, 19:08
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
я бы сказал, что метод будет зависеть от решаемой задачи. Тебе нужно просто красиво нарисовать кривульку или же нужно отобразить функцию с заданной точностью для, к примеру, визуального ("численного") решения уравнения ? Или ещё что-то ?
Сообщение отредактировал Алексей1153 - 5.9.2010, 19:09 |
|
|
Litkevich Yuriy |
5.9.2010, 19:27
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Алексей1153 |
5.9.2010, 19:44
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
по-моему их в природе не существует в голову приходят крайней мере три штуки, все с плюсами и минусами: - вычисление точек по функции y(x), соединение отрезками - вычисление точек по функции y(t), x(t) (параметрически) , соединение отрезками - вычисление точек путём сканирования диапазона вывода и сравнения с заданной точностью |
|
|
Litkevich Yuriy |
5.9.2010, 19:49
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Алексей1153 |
5.9.2010, 19:59
Сообщение
#8
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
первые два - строятся отрезками, третий - пикселами (или прямоугольниками, если точность слоновая).
|
|
|
QMainWindow |
12.9.2010, 16:00
Сообщение
#9
|
Участник Группа: Участник Сообщений: 198 Регистрация: 1.8.2010 Пользователь №: 1922 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо, собственно это и хотел узнать. Значит строить только отрезками.
|
|
|
Текстовая версия | Сейчас: 3.1.2025, 10:58 |