2010-05-25 2 views
3

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

ответ

10

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

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

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

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

Для ввода и оценки простых текстовых уравнений вы можете найти полезный код GCMathParser от Graham Cox.

+1

+1. Добро пожаловать в тег [latex]: надеюсь увидеть вас здесь больше. –

2

Не существует реального двигателя Tex, реализованного для Touch Cocoa, о котором я слышал, но есть легкий механизм расчета формул Javascript: jsMath.