Files
wordcloud/backend/EfficientWordCloud/docs/usage.md
T
broccoliandClaude Sonnet 5 1d17b5e20d Rework layout engine around exact-glyph collision, add tests and docs sync
Replace the old bbox/heuristic placement (scale search rounds, large-font
capping, stratified sampling, fill-retry ladders) with an area-model font
sizing pass feeding a C++ exact-glyph collision engine (centroid-biased
spiral + random probing, HD clearance refinement, density/hole
optimization). Simplify the frontend advanced-params panel and JobParams
type to match the surviving config surface, add a layout-constraints test
suite and a repeatable benchmark tool, and bring docs/*.md back in sync
with current code (plus new TESTING.md and DEPLOYMENT.md).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-26 18:32:25 +08:00

55 lines
1.5 KiB
Markdown

# EfficientWordCloud 使用文档
## 1. 构建与安装
在项目根目录执行:
```bash
python setup.py build
python setup.py install
```
## 2. 基本使用示例
```python
from efficient_wordcloud.wordcloud import EfficientWordCloud
freq = {
"hello": 100,
"world": 80,
"efficient": 60,
"wordcloud": 40
}
wc = EfficientWordCloud(
width=800,
height=600,
font_path="/path/to/font.ttf",
max_words=200,
min_font_size=8,
max_font_size=32,
prefer_horizontal=0.9
)
wc.generate(freq)
img = wc.to_image()
img.show()
```
## 3. 关键参数说明
- `width` / `height`:画布尺寸。
- `font_path`:字体路径。
- `max_words`:最大词数。
- `min_font_size` / `max_font_size`:本次整批布局可使用的硬字号边界。
- `prefer_horizontal`:水平排版概率。
- `relative_scaling`:权重对目标字号的影响比例。
- `margin`:真实字形之间的最小工作网格间距。
## 4. 放置语义
- 每个词只使用权重映射得到的目标字号。
- 放不下时只尝试同字号的另一方向,不会逐词缩字号。
- 调用者需要检查 `layout_` 的数量;若不完整,应整批调整字号或扩大画布后创建新实例重排。
- 项目正式流水线使用 C++ `place_glyph_exact()` 做真实字形碰撞;底层兼容类保留矩形搜索 API。
## 5. 常见问题
### 5.1 若没有字体文件怎么办?
会回退到 PIL 默认字体,但测量与渲染效果可能不同。