發佈大幅重構優化的 TouchVG 1.0.2

發佈大幅重構優化的 TouchVG 1.0.2,支持SVG、多模塊擴展結構,歡迎評閱改進、提交pull request。html

https://github.com/rhcad/touchvgjava

關於 TouchVG

TouchVG 是一個主要由C++開發的輕量級2D矢量繪圖框架,可在 iOS、Android、Windows 等多個平臺構建矢量繪圖應用。python

做者:張雲貴 rhcad@hotmail.com 開源協議:LGPL 2.1,見 LICENSE 文件描述。android

TouchVG 的功能

支持多點觸摸或鼠標的交互繪圖方式,能夠無級放縮或平移顯示矢量圖形、圖像、SVGios

除了基本的15餘種矢量圖形類型外,可以使用C++或Java等來擴充更多的圖形類型。git

除了基本的20餘種選擇和繪圖命令外,還可以使用C++、Java等擴充更多的交互命令。github

能夠交互式修改圖形的線寬、顏色等屬性,能夠進行放縮變形、克隆等圖形操做。算法

支持JSON等格式的圖形序列化操做,容許擴充XML、數據庫等其餘序列化適配器。數據庫

支持多模塊的擴展機制,可構建數字教育、動態幾何、圖文筆記等多種行業繪圖模塊。json

更多說明將在TouchVG的 在線文檔 中補充。

引用的開源框架

Larva Labs 的 Android SVG 解析框架 svgandroid (Apache License 2.0)。

iOS SVG 解析框架 SVGKit (MIT)。

用於跨語言轉換的 SWIG,用此工具生成粘合代碼。

iOS靜態庫模板 iOS-Universal-Library-Template

JSON 解析和輸出框架 rapidjson (MIT)。

GCC編譯腳本 x3py (Apache License 2.0)。

算法:圓弧和Bezier曲線最近點計算三次Bezier範圍計算兩圓求交點點線位置判斷

意見和建議

在您使用 TouchVG 的過程當中有任何意見和建議,請到此項目 提交Issue

Android編譯說明

在 eclipse 中導入此項目下的全部工程,運行 VGTest 工程可看演示效果。

可能須要根據實際安裝狀況修改工程的SDK版本號。

建議使用較新的 ADT Bundle,省掉了eclipse和ADT的安裝配置麻煩事。

能夠將 democmds 改成你的應用庫工程(例如使用UltraEdit保持大小寫全文替換,並替換文件名), 該工程包含 democmds.jar 和 libdemocmds.so(本地庫)。在此增長本身的圖形類和命令類,這樣就不須要改動 TouchVG 內核了。

不寫C++代碼、不要democmds也行,參考 android/test/src/vgtest/testview/shape包寫本身的圖形和命令吧。

如需從新生成 libtouchvg.so 和 libdemocmds.so,則進入此項目的 android 目錄,運行 ./build.sh./build.sh NDK_DEBUG=1 (須要將NDK安裝位置加到PATH環境變量,以便使用 ndk-build)。

使用NDK-r8c之後的版本若是出現 build/gmsl/__gmsl:512: *** non-numeric second argument to wordlist function 錯誤, 則打開 NDK 安裝目錄下的 build/gmsl/__gmsl 文件,將512行改成: int_encode = $(__gmsl_tr1)$(wordlist 1,$(words $1),$(__gmsl_input_int))

若是是在Windows上編譯,推薦使用 MSYS(Unix模擬環境工具)、TDM-GCC(一種MinGW發行版)。

如需從新生成內核JNI類(democmds.jar中的core包),則先刪除 democmds_java_wrap.cpp,再運行./build.sh (須要安裝SWIG,並將SWIG位置加到 PATH 環境變量)。

iOS編譯說明

在 Xcode 中打開 ios/TestVG.xcworkspace 文件,運行 TestView 演示程序。

libTouchVG.a 和 libDemoCmds.a 太大,沒上傳到源碼庫,須要本身編譯:

進入此項目的 ios 目錄,運行./build.sh(須要配置Xcode命令行環境,以便使用 xcodebuild)。

本項目對 SVGKit 作了少許修改,可下載預編譯的 libSVGKit-iOS.aios/output 目錄下。

在真機上調試時須要修改主程序的Bundle Identifier,例如「com.yourcompany.TestView」,並選擇本身的開發證書(Code Signing)。

能夠將 DemoCmds 改成你的應用庫工程(例如使用UltraEdit保持大小寫全文替換,並替換文件名), 增長本身的圖形類和命令類,這樣就不須要改動 TouchVG 內核了。

WPF編譯說明

在 Visual Studio 2010 中打開 wpf/Test_cs10.sln,運行 WpfDemo 工程。VS2008則打開 wpf/Test_cs9.sln

如需從新生成內核類(編譯 Swig Files 下的 touchvg.i 或 democmds.i),須要安裝 SwigWin,並將SWIG解壓位置加到 PATH 環境變量。

其餘編譯說明

還可在Linux、MinGW、Mac OS X下編譯靜態庫,或爲 Python、Perl、Java 等應用編譯動態庫。

進入core目錄,該目錄下有 Makefile 文件,運行下列 make 指令:

make all install:編譯C++靜態庫。

make java:爲Java程序生成Jar包和動態庫。

make pythonmake perl:分別爲Python、Perl等生成類文件和動態庫。

make clean java.clean python.clean:刪除上述編譯出的臨時文件。

若是是在Windows上編譯,推薦使用 MSYS(Unix模擬環境工具)、TDM-GCC(一種MinGW發行版)。

相關文章
相關標籤/搜索