我有100个相似的形状(简单的矢量图形)。如何找到所有100个实例的“平均/合并”形状?
感谢, 你
答案 0 :(得分:2)
计算每个形状的区域{A}。
找到大多数点{N}的形状{S}(你最终会得到一个N边多边形)
将{S}与其他形状合并,并创建第一个合并的{M}形状。然后将{M}与剩余的其他形状合并。 {M}将在每次与其他形状合并时进行动态/重写/更改。
合并功能:伪代码
首先调用Merge({S}, {S2})
,然后为其余形状调用Merge({M}, {S2})
。
参数:
{S1} =具有最多点的形状;
{S2} =要合并的形状;
function Merge({S1}, {S2}):
FOR EACH {point} of {S1} DO
{near}=find nearest {S2}{point}
{size}=( SQRT({S1}{A}) + SQRT({S2}{A}) )/2
{line}=create line starting at {near}, going to/over {point} of length {size}
add point in {M} with position at half the {line}
END FOR
RETURN {M}
;
3个初始形状:矩形,三角形,7边多边形 {S} =绿色
将绿色与矩形合并 {M} =蓝色
将蓝色与三角形合并 {M} =黄色< -final结果
注意:合并的形状不是按比例的!没有占地区!