在形状内分发文本

时间:2012-01-11 19:53:03

标签: c# string geometry

我有一系列简单的字符串(简单的意思是1-4个字,而不是完整的句子),我想在任意形状内“均匀地”分配。

“均匀”是指文本尽其所能不与其他文本重叠,但所有字符串都不会聚集在一个特定位置。我并不是说文本必须是彼此的最大距离,我只是想尽可能地填充空间。

示例:

我有以下数组:

var array = new [] {"#WhatIDidLastWeek", "Salena Gomez", "#WWF", "#IThinkOomf", "CES" };

我有一个半径为600px的圆圈,我希望array中的每个字符串都在该圆圈内并且间距足够大,以至于它们不会重叠并且一般形状为圆圈很明显。

1 个答案:

答案 0 :(得分:1)

首先想到的是在您正在使用的任何环境中使用某种MeasureString调用。

基本思想是测量每个单词以确定它是否适合分配的空间。如果它不合适,将其向下移动到下一个“线”。当你的空间不足以适应所有的话时,困难的部分就是做什么。