Russian Qt Forum
Апрель 25, 2024, 19:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Рисование математической формулы  (Прочитано 23906 раз)
merke
Гость
« : Декабрь 12, 2009, 14:36 »

Всем привет!
Писал синтаксический калькулятор, написал, теперь нужно чтобы введённая формула выводилась в нормальном графическом виде.
Т.е. ввожу sqrt(x) а прога рисует знак коря и под ним x.
Програмлю на qt, но с графикой ни когда не работал.
Пожалуйста, подскажите в какую сторону рыть. Или может кто подскажет где найти такие исходники.

Буду очень благодарен!

С уважением, Александр!
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Декабрь 12, 2009, 14:42 »

Писал синтаксический калькулятор, написал, теперь нужно чтобы введённая формула выводилась в нормальном графическом виде.
Т.е. ввожу sqrt(x) а прога рисует знак коря и под ним x.
Програмлю на qt, но с графикой ни когда не работал.
Пожалуйста, подскажите в какую сторону рыть. Или может кто подскажет где найти такие исходники.
Обычно это решается шрифтом в котором есть знак корня, знак числа пи и.т.п. (т.е Вам не нужно рисовать знаки графикой)
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #2 : Декабрь 12, 2009, 14:56 »

Цитировать
Обычно это решается шрифтом в котором есть знак корня, знак числа пи и.т.п. (т.е Вам не нужно рисовать знаки графикой)

Обычно всё проще  Улыбающийся Можно воспользоваться html для этого дела.. Да, это конечно не LaTeX, но если формулы достаточно плюшевые, то вполне можно юзать

К примеру:
Код
HTML
2&radic;<i>x</i> sin<i>(&omega; x)</t>
попробуйте вставить это, ну скажем так, в QLabel и у вас получится примерно следующее: (см скриншот)


  
« Последнее редактирование: Декабрь 12, 2009, 15:00 от shapoclak » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #3 : Декабрь 12, 2009, 15:03 »

Да, кстати, вот ссылка на различные символы: http://physics-animations.com/symbol.html

Бог в помощь  Подмигивающий
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Декабрь 12, 2009, 15:08 »

вроде на Qt-Apps была примочка для рисования формул, на основе Теха
Записан

Юра.
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #5 : Декабрь 12, 2009, 15:17 »

Цитировать
вроде на Qt-Apps была примочка для рисования формул, на основе Теха

Серьёзно? Надо будет глянуть, а то была у меня как-то мысля написать подобный класс, но потом как то забылось..  Грустный
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Декабрь 12, 2009, 15:18 »

Обычно всё проще  Улыбающийся Можно воспользоваться html для этого дела.. Да, это конечно не LaTeX, но если формулы достаточно плюшевые, то вполне можно юзать
Не знал что так можно, а мне это тоже может пригодиться. Спасибо за инфу Улыбающийся
Записан
merke
Гость
« Ответ #7 : Декабрь 12, 2009, 17:53 »

Большое спасибо, помогли!!!
Записан
AleUri
Гость
« Ответ #8 : Декабрь 12, 2009, 18:59 »

The QtMmlWidget component renders mathematical formulas written in MathML 2.0.

http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Widgets/qtmmlwidget
Open Source Edition (LGPL)
« Последнее редактирование: Декабрь 12, 2009, 20:18 от AleUri » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #9 : Декабрь 12, 2009, 19:34 »

Цитировать
The QtMmlWidget component renders mathematical formulas written in MathML 2.0.

Не, надо свой класс писать  Грустный Это далеко от идеала того чего хотелось бы получить.. Хотя надо раскуривать исходники...

Да. реально нужно написать что нить вроде мастайпа  или того, что использует опенофис...
Но вот со временем как то напряжно Грустный

В идеале хотелось бы иметь следующее:

Имеется класс, который имеет метод:
1. void setText(const QString &text); сюда впихиваем стоку в формате LaTeX
2. должен быть метод или сигнал который который говорит валидна ли строка
3. должен быть метод setPixmap(const QPixmap *pixmap) который возвращает пиксмап с нарисованной формулой
4. Размер шрифта и возможно различные пропорции между символами в формуле (как в мастайпе)

Ну эт пока всё что на ум приходит... Если интересно можно заняться этим делом  Подмигивающий


 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #10 : Декабрь 12, 2009, 20:36 »

Хотя, нет, вру... Сорри  Улыбающийся

Привожу скриншоты как выглядит аналогичные формулы в опенофисе, латехе и MML Widget:

1. MML Widget
2. OpenOffice
3. LaTeX

Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
amateur.cpp
Гость
« Ответ #11 : Август 31, 2013, 17:28 »

Поднимем темку потому что у меня возникли вопросы, а по поиску нашел только эту. Так как сейчас обстоят дела с отображением математических формул в Qt 5.0? Есть что-нибудь надежненькое и готовенькое? Спасибо!
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #12 : Август 31, 2013, 18:46 »

вряд ли такой класс кто-то будет добавлять в дистрибутив
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
amateur.cpp
Гость
« Ответ #13 : Август 31, 2013, 19:13 »

вряд ли такой класс кто-то будет добавлять в дистрибутив

А что-то из библиотек добрых саморитян? Подмигивающий
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #14 : Август 31, 2013, 20:05 »

вроде лучшими вариантами являются использование вышеуказанного виджета либо вебкит с библиотекой рендеринга (mathjax например)
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.103 секунд. Запросов: 22.