gpt4 book ai didi

algorithm - 如何将不同宽度的矩形水平对齐到中心,但将 anchor 保持在每个矩形的中心?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:11 25 4
gpt4 key购买 nike

例如,如果我有 2 个矩形, anchor 在矩形的中心,一个宽度为 6(红色),另一个为 2(蓝色),我想像这样将它们水平对齐到中心:

enter image description here

为了使整个结构的位置(也是中心和 anchor )在原点,红色矩形应该放在(-1,0),蓝色矩形应该放在(3,0) .

这个例子可以用图来解决,分成1个单位段,但是如果我有任意数量的不同宽度的矩形呢?

enter image description here

如何找到每个矩形的 anchor 在中心的每个矩形的位置?

最佳答案

将所有矩形的宽度相加然后除以 2。这是从最左边的矩形的左侧到中心的距离。

然后对于每个矩形,计算从最左侧矩形的左侧到矩形中心点的距离。从第一个数字中减去它以找到矩形中心点距中心的偏移量。

伪代码:

求最左边矩形的左边到中心的距离:

int i;
float sum = 0;
for(i = 0; i < rectangle_count; i++)
sum += rectangles[i].width;
centerpoint = sum / 2.0;

计算每个矩形距中心的偏移量:

sum = 0.0;
for(i = 0; i < rectangle_count; i++)
{
// compute offset for this rectangle relative to center:
rectangles[i].offset = (sum + (rectangles[i].width / 2.0)) - centerpoint;

sum += rectangles[i].width;
}

关于algorithm - 如何将不同宽度的矩形水平对齐到中心,但将 anchor 保持在每个矩形的中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31331523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com