我是GMA, 近期有部分与“文字”和“优化文字排版”的业务功能开发,可预见的是以后这类功能业务还会有很多。今天,尽可能的把理论和实现路线确定下来。
参考
- 李桐. Revit MEP管道自动标注及优化布置算法的研究[D]. 西安建筑科技大学.
已有理论和研究方法
以下内容主要出自参考文献。
-
工艺和拓扑相关的表面理论 TTRS
建模软件已实现此过程。只需要我们找到相关的几何信息即可。 -
布置优化
-
节点标注优化(标注位置为单点) Node Label Pacement
-
穷举搜索算法和模拟退火算法
-
边缘标注优化(标注位置为线) Edge Label Placement
-
区域标注 Graphical Feature Label Placement
-
我的选择
采用区域标注相关理论,解决二维上标注布置问题。
自动标注
自动标注过程归纳如下:
- 原始对象A(I)输入
- 原始对象转化成被标注对象X(x| x属于A,U(x) = U(i))。X=f(A) ,被标注对象是由原始对象组成的集合,且被标注对象间不存在相同的原始对象。
- 对每个被标注对象X,计算出标注内容T。这里,标注的具体内容由业务规则决定。
- 被标注对象X,携带一个理想的可标注范围S。在可标注范围内计算标注位姿P(位置和角度)。这里说一句,可标注范围本身就是一个几何要素,只是在具体的功能中,可能是点,也可能是有限长线或者有限面域。
在上述过程中,提到了几个自定义的符号是后续的主要关注点。原始对象A, 被标注对象X, 标注内容T, 和可标注范围S,标注位姿P,他们之间的关系如下:
A ,X 相互转化 ;
X 拥有T和S;
P 是S的部分;
标注对象就是一个具有标注内容T,位姿P确定的,和被标注对象X相关的实体。