2013-04-14 27 views
6

Tôi đã tự hỏi nếu có một cách dễ dàng để thực hiện việc hiển thị các phương trình toán học vào một ứng dụng iOS. Nó không phải là tương tác. Tất cả những gì cần làm là hiển thị phương trình theo những cách truyền thống để khi người dùng đối phó với các phương trình phức tạp, nó làm cho việc theo dõi dễ dàng hơn.Render phương trình toán học trong iOS

ví dụ: 2^(2/(6^(1/2))) cho: Example output

Wolfram Alpha thực hiện điều này cùng với các ứng dụng khác mà tôi đã thấy. Nó cũng không phải xử lý các biến.

+1

Hãy xem xét điều này: http://stackoverflow.com/questions/2907045/drawing-formulas-with-quartz-2d –

+0

@Tom, SirKaydian muốn một cách _easy_ và vẽ công thức bằng Quartz2D, như Brad trả lời , "không phải là việc thực hiện tầm thường" .. – foundry

+1

@ RichardJ.RossIII, tôi sẽ không coi đây là một bản sao, câu hỏi được liên kết của bạn được hỏi vào năm 2010 và tự là swered trong năm 2011, trước khi sự ra đời của MathML trên iOS5 – foundry

Trả lời

3

UIWebView có thể hiển thị mathML từ iOS5. Ví dụ của bạn:

<math title="2^(2/(sqrt(6))" xmlns="http://www.w3.org/1998/Math/MathML"> 
    <mstyle mathcolor="blue" fontfamily="sanserif" displaystyle="true"> 
    <msup> 
     <mn>2</mn> 
     <mrow> 
     <mfrac> 
      <mn>2</mn> 
      <mrow> 
      <msqrt> 
       <mrow> 
       <mn>6</mn> 
       </mrow> 
      </msqrt> 
      </mrow> 
     </mfrac> 
     </mrow> 
    </msup> 
    </mstyle> 
</math> 

Điều này sẽ hiển thị trong UIWebView trên iOS.

Có thư viện javascript có thể chuyển đổi cho bạn - ví dụ mathjax thể chấp nhận ASCIIMath đầu vào như ví dụ này 2^(2/(sqrt (6))

Có một cuộc thảo luận tốt về những vấn đề này ở đây Tradeoff between LaTex, MathML, and XHTMLMathML in an iOS app?

+0

Nhưng có một bước thiếu ở đây - bây giờ bạn sẽ cần một thư viện để chuyển đổi một phương trình 'đơn giản' từ '2^(2/(6^(1/2)))' thành tương đương MathML. –

+0

@ RichardJ.RossIII Tôi chỉ thay đổi 6^(1/2) thành sqrt (6) - trước đây sẽ hiển thị "chính xác" đặt "0,5" vào phần trên của 6. Đó là quyết định tác giả của con người nhiều như bất cứ điều gì (và có lẽ mathjax sẽ làm điều đó với một biểu tượng sqrt anyway, tôi đã không cố gắng) ... – foundry

1

Đối với các biểu thức đơn giản, cách dễ nhất có thể là sử dụng HTML và hiển thị biểu thức trong UIWebView. Điều này sẽ làm việc đặc biệt tốt nếu phần biểu hiện của nội dung khác cũng có thể được hiển thị bằng cách sử dụng HTML.

+1

Khó khăn với điều này là các giải pháp JavaScript có thể chậm trên các thiết bị cũ hơn, và UIWebViews thường không được biết đến cho dấu chân bộ nhớ tốt của họ. Những hạn chế này đã đi xuống với các thiết bị mới hơn, nhưng tôi vẫn không khuyên bạn nên phát điên với UIWebViews. –

+0

@ RichardJ.RossIII Đồng ý. Mặt khác, việc sử dụng chế độ xem web dễ dàng hơn rất nhiều so với việc sử dụng Core Text và viết thư viện toán học của riêng bạn. Javascript không thực sự cần phải là một yếu tố trừ khi bạn chọn sử dụng thư viện Javascript để trợ giúp kết xuất. – Caleb

Các vấn đề liên quan