我正在收集一些項目的信息,這些信息必須在幾周內開始。 該項目包含一個基於瀏覽器的繪圖工具,用戶可以自行添加預定義的形狀或形成圖形。形狀必須是可選擇的,可以隨意使用類似Illustrator的變形工具(手柄)進行縮放和旋轉。 我們想到的預定義形狀是:矩形,橢圓,半橢圓和(等腰三角形)三角形。將圓角應用於路徑/多邊形
到目前爲止,爲了達到這個目的,我想到了RaphaelJS或FabricJS,但是......每一個形狀(多邊形/路徑)都必須用特定的角點繪製。並且在縮放時角錐必須保持不變,所以不會發生扭曲。用戶可以通過輸入指定舍入。
有幾個障礙/問題:
- 有一些統一mathemetical公式爲cornerradius適用於我所提到的形狀?或者是否必須將每個形狀都視爲一個小型項目本身?我想將它作爲路徑或多邊形返回,因此可以使用SVG或畫布進行繪製。
- 通過拖動變形手柄,每個縮放或旋轉操作都將導致(大量)計算來檢索我認爲更新的形狀。矩形是最容易實現的,除橢圓之外,所有其他形狀將更難以計算。有什麼方法可以加快這個過程?
我發現了一個網站,用戶可以繪製流程圖並在幾乎所有形狀上應用角部輻射。它運行的很順利,我不能指出他們是如何做到的。 鏈接:https://www.lucidchart.com/(嘗試按鈕)
現在,我有點無知,我猜平庸在數學。也許有人能把我推向正確的方向並分享一些經驗?
在此先感謝。
順便說一句。性能是這個項目的關鍵。圖形的輸出必須是SVG格式。
什麼是上下文? –
'context'表示[CanvasRenderingContext2D](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D) –