Рисование формул с помощью Quartz 2d - PullRequest
3 голосов
/ 25 мая 2010

В своем приложении для iPhone я бы хотел нарисовать несколько формул. Как я могу справиться с этим с кварцем 2d? Есть ли способ построить формулы, как, например, в латексе? Или есть какие-то существующие фреймворки? Спасибо.

Ответы [ 2 ]

10 голосов
/ 26 мая 2010

Как разработчик приложения для iPhone, которое делает именно это , поверьте мне, когда я говорю, что наборные уравнения не являются тривиальным делом. В моем случае я использовал слои Core Animation для построения подэлементов анализируемого уравнения. Уравнения построены иерархически, и составляющие их операции выложены как таковые. Каждая операция содержится в слое ее родительской операции и размещается в соответствии с правилами этой конкретной операции.

Для визуализации визуальных элементов операций в уравнении я использовал Quartz для рисования линий, символов и т. Д., Но большая часть рисунка представляла собой просто текст, нарисованный в CALayer с использованием текстовых расширений NSString.

Я переопределил стандартную архитектуру рендеринга CALayer для генерации PDF-файлов из этих уравнений, потому что CALayers по умолчанию не рендерится как векторные элементы. Для примера того, как этот рендеринг работает в моем приложении, см. Проект Core Plot с открытым исходным кодом, который делает то же самое на своем базовом уровне.

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

Для ввода и оценки простых текстовых уравнений вам может пригодиться GCMathParser Грэма Кокса .

2 голосов
/ 25 мая 2010

Реального движка Tex, реализованного для касания Какао, о котором я слышал, нет, но есть облегченный движок компоновки формул Javascript: jsMath .

...