Java讓Web顯示數學特殊符號

2020-11-29 太平洋電腦網
  網絡的飛速發展使得人們能夠在不同時間、空間交流。然而目前交流還只限於文本方式或簡單的、事先編輯好的圖片。當討論數學問題時,人們常常苦於無法用簡單的數學符號直接表達準確的意思,這大大限制了遠程教學的發展。同時使網絡交流停留在近乎原始的方式上,可以說僅僅只是用文字代替了語音。本文介紹利用SVG和Java開發包處理這一問題的解決方案。通過此種方案,在不同網絡終端的用戶可以用近似於MathLab中的數學語言描述自己想要得到的數學符號,由伺服器動態生成數學符號圖像,並向其它終端發送。   現有的幾種方案   目前網上解決數學符號顯示的方案有以下幾種:   ◆ MathML這是W3C根據XML標準制定出的在網絡上顯示數學符號的語言,但它非常複雜,並且目前IE暫時不支持需要的插件。同時,由於它需要在客戶端解釋顯示,速度也是一個問題。   ◆ Applet 在以前的教學軟體中就有使用Applet解決數學符號顯示的例子,但是速度問題和微軟對Applet的抵制使得它已逐漸失去生命力。   ◆ SVG 雖然IE目前也暫不支持,但它的插件相對而言很容易得到。只要安裝了Acrobat Reader,插件就自動裝上了。   相關技術   XML   擴展標記語言(XML,eXtensible Markup Language)是一種可擴展的元置標語言。XML是由SGML(Standard General Markup Language)發展而來的語言,其目標是為了適應Web應用環境,將網絡上傳輸的文檔規範化。它用文檔的結構標記定義手段來表達文檔內容的語義元素及其關聯,從而提供了網上數據交換的語義格式標準,以及各類業務文檔置標語言標準的實現方法。   XSLT   XSLT(Extensible Stylesheet Language Transformation)是一種將XML文檔轉換成其它類型文檔的語言。   JAXP   JAXP(Java API for XML Processing)是Sun公司推出的一種最新的XML工具包。支持最新的DOM和SAX API。   SVG   SVG(Scalabel Vector Graphics)是一種以XML格式描述二維圖形的規範。這些XML文檔以.svg擴展名結尾,並且可由SVG瀏覽器讀取這些文件,然後顯示。目前大多數Web瀏覽器都支持用插件或ActiveX控制項(比如Adobe SVG Brower)查看SVG文檔。之所以稱「可縮放矢量圖形」是因為SVG處理的是矢量類型的圖形,而不是光柵類型的圖形。矢量圖形是可縮放的,並且在圖形縮放或旋轉時不會降低解析度或模糊細節。可縮放矢量圖形還可以採用輕巧的可移植格式描繪複雜圖形。與其它格式比較起來,矢量圖形格式主要優點在於:第一,用於包含圖形信息的文件尺寸較小;第二,組織信息的方式便於理解。   在SVG中所有圖像都由圖元組成,例如line、path、text等。   JSP   JSP(Java Serve Page)能在Web Server端整合Java語言至HTML網頁環境中,利用網頁內含的Java程序代碼取代原有的CGI、ISAPI或者IDC的程序。主要用於動態網頁的製作。   設計思路   要顯示數學符號,顯然不能用ASCⅡ字符,這就需要一種可定製的圖形規範,SVG正好充當了這一角色。SVG是以XML格式描述二維圖形的規範,並且能夠動態生成,這一點正好便於生成數學符號。   數學公式的描述可以用XML來完成。XML在描述有序嵌套結構時非常方便、清晰,而且它本身是樹結構,而數學公式可以抽象成為樹形結構。例如以下數學符號可以抽象為圖1。       數學符號   其中可以自己定義一些符號元素,例如根號、數字、求和符號等。再為這些元素加上描述其特點的屬性,例如要有根號的長度等。這樣就可以把一個數學公式的信息完整地描述出來。由於我們的目標是顯示,因此上(下)標等都可以看作兄弟元素,統一用表示。              圖1 公式結構樹   由於在SVG中顯示的圖形都是由圖元組成的,因此需要根據圖元定義符號顯示格式。如圖2對於字母或數字,按照現行的字形規則定義,對於特殊符號定義它的一些特徵部位的格式。   圖2 顯示格式定義   根據SVG圖元顯示的特點,每個圖元都需要指定坐標。因此在定義完格式後還需要得到顯示的坐標數據,例如根號就需要最左端的坐標、高度、寬度,數字則只需知道起始位置的坐標,如圖3。   圖3 顯示坐標數據   為了用戶輸入方便,在系統中定義了一套輸入規則,其中關鍵字是以「$」開頭,由三個字母組成,如表1。   表1  自定義關鍵字   $SQR   根號  $INX   下標  $SIG   求和符號  $FRA   分號  符號的子元素在「[ ]」內描述。特殊符號,例如求和符、上下界等用「,」分開。例如上述的數學符號就可以表示為:$SQR[243$SIG[n, i=1] X $INX[i] ]。   這裡要說明的是,定義詞法時儘量符合書寫習慣,避免過多的嵌套,例如變量的下標和變量屬於兄弟關係而不是父子關係。   圖4是將用戶輸入轉變為圖形顯示的主要流程圖,其中通過JAXP包將XML描述的公式樹轉化為SVG文件。在顯示時可根據情況將SVG轉變為JPG格式或直接嵌入網頁中。        圖4 用戶輸入轉變為圖形顯示的流程圖   一個例子   將前一節的描述語句$SQR[243$SIG[n, i=1] X $INX[i] ] 編譯得到的XML文件為: math.xml 243 number> n i=1 X i   將其用JAXP和math.xsl轉換為的SVG文件為: math.svg243243nni=1i=1XXii  最後得到的顯示圖形見圖5。   圖5 運行結果圖   此外,這種模式還可以用於化學符號、地圖等特殊符號的顯示。特別是在網絡服務和瘦客戶端發展趨勢下,這種僅需要瀏覽器的處理機制會得到大力發展。

相關焦點

  • 數學符號大全:常用與特殊符號,不同符號的含義、讀法
    大家都知道,數學裡面會有很多很多的數學符號,各種常見的,如+ - × ÷ = ≠ ≈ / > < ≯ ≮ ≤ ≥ ∵ ∴ ∽ ≌ 等,這些相對簡單也比較容易念出來,而一些特殊的符號,很多同學甚至不知道它的讀音,現在小編將所有的數學符號都匯總整理了一遍,包括一些常用的數學符號
  • Web前端和後端有什麼區別(上)
    三、web後端和前端是怎麼連接的? 1、Web伺服器(apache, tomcat等),網絡協議(http, socket等),瀏覽器(chrome, FF, IE等)。
  • 電腦怎麼打出特殊的符號?
    我們在電腦上寫東西的時候,有時會遇到使用特殊符號的情況,像感嘆號(!)星號(*)等都能使用shift+數字鍵來實現。>比如我們使用搜狗輸入法:在搜狗輸入法輸zhidao入狀態下,用滑鼠點擊軟鍵盤->特殊符號,把滑鼠放在(不要點)某一符號上,就會顯示如何輸版入此符號。
  • 數學符號手冊-字母
    輸入顯示輸入顯示輸入顯示輸入顯示\alphaA\betaB\gamma\Gamma\delta\Delta\epsilonE\zetaZ\etaH\theta\Theta\iotaI\kappaK\lambda\Lambda
  • 《明日之後》名字特殊符號介紹 名字特殊符號有哪些
    導 讀 在明日之後中名字可以使用特殊符號,那麼都有哪些特殊符號我們就一起來看看吧!
  • 《我的起源》特殊符號怎麼輸入 特殊符號輸入教程
    導 讀 不少玩家都知道我的起源是一款人氣火爆遊戲,在我的起源遊戲中玩家可以建立自己專屬的暱稱,很多小夥伴都知道在暱稱裡加入特殊符號無疑會使我們的暱稱顯得更加獨特有型
  • 王者榮耀特殊符號大全 名字特殊符號怎麼用
    在《王者榮耀》的遊戲當中,名字特殊符號可以讓各位玩家取一些比較特殊的名字!那麼哪些特殊的名字符號可以使用呢?一起來看看王者榮耀特殊符號大全吧!各位只要長按就可以複製自己喜歡的符號後,在遊戲內取名的時候就能使用了!
  • word中的數學公式數學符號怎樣插入?
    在寫數學論文或者 是日常工作生活中,經常會遇到插入數學公式或者是插入特殊的數學符號,這些符號如果不是經常使用電腦敲打,就不知道從何下手了,今天小編以word2007為例,講一下如何插入特殊的數學符號和公式。
  • 王者榮耀名字特殊符號有哪些 王者榮耀特殊符號名字大全
    王者榮耀名字特殊符號有哪些?很多朋友都關注王者榮耀名字特殊符號,看到有人在王者榮耀手遊中很多玩家在看到別人的名字中有一些特殊的符號,其實這些只需要複製相應的特殊符號到遊戲取名那就可以了,那麼根據王者榮耀名字的規則,哪些特殊符號可以用呢下面就跟小編一起去看看王者榮耀名字符號大全吧!
  • 王者榮耀特殊符號怎麼打 特殊符號複製不了怎麼辦
    特殊符號複製不了怎麼辦呢?感興趣的小夥伴就和小編一起來看看吧! 王者榮耀特殊符號怎麼打上去?
  • Java程式設計師必備基礎:Java代碼是怎麼運行的?
    驗證階段包括四個階段:文件格式驗證、元數據驗證、字節碼驗證、符號引用驗證。 符號引用驗證:發生在虛擬機將符號引用轉化為直接引用的時候,如:校驗符號引用中通過字符串描述的全限定名是否能找到對應的類。 準備 準備階段是正式為類變量分配內存並設置類變量初始值,這些變量所使用的內存都將在方法區中進行分配。
  • 玄元劍仙名字有哪些特殊符號 名字特殊符號大全
    那麼,都有哪些可以在《玄元劍仙》手遊中使用的特殊符號呢?下面,就跟隨PConline的小編一起來看一下吧~  特殊符號一覽:  、、、、、、、、、、  ★☆ㄨ♂♀  音符符號    太陽,月亮,雨,雲,流星,傘,溫泉,堆雪人,冰晶符號  ☉⊕
  • AXIS實現Web服務深入篇
    在開始我們的文章之前,我們還需要搭建一個環境,我們需要一個支持Web服務的web應用程式並假設名字為axis,如何建立請參照 《應用AXIS開始Web服務之旅》文章中的介紹。使用定製發布編寫Web服務 使用jws文件的方式編寫Web服務具有方便、快捷的優點,它可以很快的將你已有的類發布成Web服務。
  • 數學簡史之「數學的符號化」
    數學符號的產生或發明,是數學史上具有劃時代意義的、必然的事情。那麼,數學符號究竟是如何產生的呢?數學符號不是數學家主觀臆造的,也不是開會達成的協議;數學符號既不先於文字產生,也不早於數學產生,而是隨著數學發展的需要同時產生的。
  • 《最強蝸牛》名字特殊符號 特殊符號名字大全
    最強蝸牛名字特殊符號。最強蝸牛的玩家可以自定義名字,那麼遊戲中有哪些可以使用的特殊符號呢?接下來小編為大家帶來最強蝸牛特殊符號名字大全,希望對大家有所幫助。
  • 使用eclipse開發Java Web項目
    本篇首先給出Tomcat 8.0的安裝及驗證過程,然後在eclipse中配置已安裝成功的Tomcat伺服器,最後新建一個Java web工程,並綁定已部署的Tomcat伺服器,在工程中新建並運行JSP文件。
  • 《王者榮耀》名字特殊符號大全 名字特殊符號怎麼打
    王者榮耀名字特殊符號怎麼打?在王者榮耀中,遊戲名字是玩家在遊戲中的暱稱,所以很多玩家想要一些獨一無二的名字,或者是讓是印象深刻的名字,有玩家想知道名字特殊符號怎麼打,下面給大家介紹一下,一起來看看吧。王者榮耀名字特殊符號大全一、可用的王者榮耀名字特殊符號                 ★ ☆             ㄨ    ♂ ♀                                         二、愛心符號 三、手符號 四、西洋棋符號
  • 發現數學之美——數學中的符號
    數學符號就像一座橋梁,其作用不言而喻。通過運用數學符號我們可以表達出數學世界中紛繁複雜的邏輯關係,那麼大家是否知道這些符號的來源呢?而數學符號,則是數學學科專門使用的特殊符號,它可以使數學思維過程更加準確、概括、簡明、直觀,易於解釋數學對象的本質。可以說,不掌握數學符號,就很難接受數學知識、進行數學研究,更無從表達數學思維。
  • 香腸派對特殊符號大全 名字裡什麼特殊符號能用
    香腸派對名字特殊符號大全是什麼?什麼特殊符號能用?大家在玩這一款遊戲的時候,那麼就可以使用一下名字的特殊符號來取名字,這樣就可以讓自己的名字變得更加特殊了,那麼一起來看看吧。 香腸派對名字特殊符號大全是什麼?什麼特殊符號能用?
  • dnf手遊特殊符號怎麼打 特殊符號遊戲名字大全
    dnf手遊特殊符號怎麼打呢?其實遊戲改名規則基本都是一樣的,這個同樣是騰訊遊戲,完全可以參考其他騰訊遊戲特殊符號改名方法,王者是人氣最高的手機遊戲,這個遊戲的符號基本是可以在dnf手遊上用的,琵琶網小編馬上就給大家分享一下特殊符號打法。