进化树布局引擎:把 PhyloTree 的拓扑与几何量转换为画布坐标。
TreeLayoutEngine
00 Remarks
实现分两步:先以「单位坐标」计算(矩形布局为水平单位 + 垂直层;圆形布局为半径单位 + 极角), 再统一映射到画布(自适应缩放或用户指定的单位像素)。这样可以保证线宽、字号等 装饰参数不随几何缩放而变化,并支持内容自适应。
8 种布局的几何公式迁移自原始 SVG 实现(TreeSkeleton),退化情形(无分支长度、 单叶/两叶、几何量缺失)均安全降级。
01 Syntax
SMRUCC.genomics.Interops.Visualize.Phylip.Evolview.Drawing.TreeLayoutEngine
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| Compute | 1 | 计算给定树的布局。 |
| FormatLeafText | 1 | 叶标签显示文本:优先使用 PhyloNode.ID,为空时退回内部编号。 |
| IsCircularMode | 1 | |
| IsSlantedMode | 1 | |
| IsPhylogramMode | 1 |
03 Members
计算给定树的布局。
Parameters
| Name | Type | Description |
|---|---|---|
tree | PhyloTree | 待绘制的树 |
options | TreeDrawingOptions | 绘制配置 |
graphics | IGraphics | 用于文本尺寸测量的画布 |
FormatLeafText(PhyloNode)
叶标签显示文本:优先使用 PhyloNode.ID,为空时退回内部编号。
IsCircularMode(
TreePlotMode)IsSlantedMode(
TreePlotMode)IsPhylogramMode(
TreePlotMode)