Chindle文字自動排版設計

2021-08-26 06:35:40 字數 957 閱讀 3191

設計目標:

根據給定的輪廓擴充套件函式生成中文。

設計思路:

從內向外逐步窮舉,最壞情況下:逐個點進行測試。

基本演算法:

main:

while not finish:

point = gen_point();

if ( ok = test(point))

add(point)

gen_point:

expand searching area base on last point

注意事項:

1. 文字排版

> 理論上文字排版應該支援所有的角度:橫排,豎排,斜著排,等等,它通過矩形旋轉角度angle來描述,目前只支援橫排和豎排,為了便於計算,chindle中每乙個單詞都用乙個矩形來描述,系統記錄矩形的a, c兩點,以及矩形旋轉角度(angle),通過a, c點可以計算出中心點(center)、矩形寬(width)、高(height)。中心點在計算中比較好用。

2. 輪廓描述方法

> 最簡單的輪廓是矩形、圓形等可以用方程描述的形狀。對於自定義輪廓,可以採用列舉的方式定義區域。為了相容所有輪廓,採用列舉方式定義區域。在列舉方式中,使用者給定乙個點陣圖mask,在後繼的計算中,與點陣圖對比即可。如果溢位位圖,則表示此位置不可放置文字。

3. 文字擴散方法

> 定義乙個擴散函式,給幾個最簡單的擴散函式:螺旋函式、阻尼震動函式。

4. 版面大小

> 印刷要求80pixel/90pixel每英吋,一英吋約合2.5cm。對於乙個50cm的圖形,需要 90 pixel/inch * 1inch/2.5cm * 50cm = 90 * 50 / 2.5 pixel = 1800pixel

如果直接由php來生成這個畫素級別,可能需要大量計算,這裡採用的方法是客戶端只生成小(450p * 450p),大在後端離線生成。大與小呈等比縮放關係。

Eclipse自動排版設定

ctrl shift f eclipse 儲存檔案時自動格式化 但對於xml檔案來說有時格式化後,乙個控制項的配置屬性全都擠在一行,閱讀和修改起來都很不方便。而我們希望最佳的格式化效果如下,控制項的每個屬性配置佔一行方便閱讀修改,沒有子元素的控制項直接使用 關閉 android layout hei...

網頁文字排版設計技巧分享 要的就是精彩!

說到排版,這是個大學問。上每乙個元素都能影響瀏覽,排版設計的好壞絕對能考驗乙個設計師的基本功底,而短短的一篇文章並不能將排版介紹清楚,本文就先主要分享 主題部分文字的排版,後期我們還會在不同系列文章中根據重點地穿插介紹排版技巧。先想想,你覺得好的文字排版是什麼樣的?在我們看來,好排版一定有著比較棒的...

美工頁面怎麼排版?排版設計需要注意什麼要點?

美工頁面怎麼排版?排版設計需要注意什麼要點?說到美工頁面排版,有人可能會問排版是什麼?那麼,接下來我們就先看看看排版是什麼?美工頁面排版的要點有哪些?一 什麼是排版?二 美工頁面排版的要點有哪些?美工頁面排版的要點有哪些?一 排版設計中有非常多需要注意的細節,各種細節也會因為不同的情境 需求而不同,...