Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2013, 18:57   #1
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
Лампочка алгоритмы построения 3d-графика

Скажем так, я имею долгосрочный проект, подпитываемый только собственным энтузиазмом, поэтому никого не тороплю, не жду моментальных ответов, просто интересно узнать ваше мнение, так как в интернете на ответы, которые хочется услышать, не наткнулся..

Собственно по порядку.
1)Решил изучать OpenGL по гайдам NeHe (возможно кто-то уже знает этот ник), ссылка : http://pmg.org.ru/nehe/index.html
(Я только начинаю тут работать)

2)Не так давно я написал многофункциональный калькулятор, который считает абсолютно всё (в поле действительных чисел, без n-кратных факториалов) и довольно легко совместил его (модульность, все дела) с построителем 2D- графиков (используя морально устаревший <graphics.h>), точнее говоря из исходников перепилил в построитель.

3)Алгоритм был таков - проверка на ошибки ввода, затем перевод в польскую нотацию, затем подсчет. Соответственно для построителя я ввел переменную икс и довольно неплохо по точкам, перебирая значения строил графики типа y = f(x)

4)К чему я веду: следуя алгоритму в пункте 3, надо будет создать большую мтарицу [nx3] точек, это, видимо, будет не быстро.

Итак
1)Есть ли проще (в плане времени) варианты перевода строки типа (tg(x)^(2/ln(7*e)-49^(2)/x!) в состояние, готовое для подсчета, не использующие польскую нотацию?

2)Если все же использовать мой алгоритм, лучше найти значение и занести на экран или всё записывать в файл, а по окончании проводить построение?

Мне важно минимизировать время, затрачиваемое на построение / создание матрицы, как по вашему будет быстрее. Или вы знаете алгоритмы?

Ещё раз : я не прошу за меня строить программу, просто интересно ваше мнение, спасибо!

Последний раз редактировалось Elloriane; 02.03.2013 в 19:01.
Elloriane вне форума Ответить с цитированием
Старый 02.03.2013, 19:12   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Используйте для построения 2D-графиков QwtPlot: http://qwt.sourceforge.net/class_qwt_plot.html

Qwt - это библиотека классов для Qt

Для 3D-графиков - QtOpenGL: http://qt-project.org/doc/qt-4.8/qtopengl.html

Я тоже сейчас изучаю уроки NeHe. Нашёл несколько его уроков (2-12 главы) на Qt: http://www.digitalfanatics.org/proje...chapter14.html
8Observer8 вне форума Ответить с цитированием
Старый 02.03.2013, 22:11   #3
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Не очень понял про QtOpenGL, русские мануалы о нем вообще мало говорят, как он мне поможет в моей задумке?
Elloriane вне форума Ответить с цитированием
Старый 02.03.2013, 22:22   #4
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
Сообщение от Elloriane Посмотреть сообщение
Не очень понял про QtOpenGL, русские мануалы о нем вообще мало говорят, как он мне поможет в моей задумке?
Документацию никто не переводит. Используйте http://translate.google.com/ и словарь Lingvo

Вот отличная статья по QtOpenGL на русском: http://www.gamedev.ru/code/articles/OpenGL_Qt4
8Observer8 вне форума Ответить с цитированием
Старый 02.03.2013, 22:52   #5
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Хм, мне же не фигуры надо рисовать.
То есть не без этого конечно, мне нужно узнать алгоритм, потребляющий минимум ресурсов, и ещё меньше времени (ударение на последнее)
Или я слишком невнимателен?
Elloriane вне форума Ответить с цитированием
Старый 02.03.2013, 23:10   #6
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
Сообщение от Elloriane Посмотреть сообщение
Хм, мне же не фигуры надо рисовать.
То есть не без этого конечно, мне нужно узнать алгоритм, потребляющий минимум ресурсов, и ещё меньше времени (ударение на последнее)
Или я слишком невнимателен?
Какие ещё алгоритмы для построения графиков по точкам? Считывайте точки из файла и выводите на экран изображение. Оптимизировать можно только в плане человеко-часов. Вот я вам и предложил Qt, если хотите быстро написать приложение.

Чем мог, тем помог.
8Observer8 вне форума Ответить с цитированием
Старый 02.03.2013, 23:28   #7
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Вот вам пример. По двум точкам рисуется прямая в 3d-пространстве. Камеру можно поворачивать: http://8observer8.somee.com/QtLine.aspx

Ещё пример. 2d-график на Qwt: http://8observer8.somee.com/QwtSimplePlot.aspx

Как видите, код там минимален по размеру.

В Qt есть классы для контроля (отфильтровывания) входных данных.

Есть классы для работы с XML-файлами (табличными данными): http://8observer8.somee.com/QtLoadMatrix.aspx
8Observer8 вне форума Ответить с цитированием
Старый 02.03.2013, 23:55   #8
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

А вот за пример огромное спасибо!
Elloriane вне форума Ответить с цитированием
Старый 03.03.2013, 16:48   #9
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Если будут вопросы по построению графиков в Qt (с Qwt (2d) или OpenGL (3d)), то пишите здесь. Постараюсь помочь.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка построения графика (TChart) IliaIT Общие вопросы Delphi 0 25.05.2010 15:10
Графика (программа построения графиков)) zooom Общие вопросы C/C++ 1 16.04.2009 15:47
Ищу алгоритмы построения расчетных сеток. shadow-2005 Компоненты Delphi 0 03.11.2008 10:29
Программа построения графика KpeHDeJIb Помощь студентам 3 07.07.2008 08:05