0

在我不断追求让我的生活更轻松的过程中,我遇到了一些让生活变得更加困难的事情。

有没有人知道为什么使用 Google Apps 脚本在 Google 幻灯片中创建或编辑对象会导致不准确的浮点版本有点接近?

例如,创建一个对象:

SlidesApp
.getActivePresentation()
.getSlides()[0]
.insertShape(SlidesApp.ShapeType.RECTANGLE, 20, 20, 200, 200);

但生成的矩形具有以下属性:

Top: 20
Left: 20
Width: 200.00787401574803
Height: 200.00787401574803

同样糟糕的是,顶部和左侧 1px 的边框并不像您期望的那样完美,因为您可以使用正确的顶部和左侧整数值。

我发现这一点是因为我第一次尝试将 x/y,w/h 舍入以使形状至少在页面上保持干净,这导致了同样的问题。

4

1 回答 1

1

更多的挖掘显示了两件事。

1)这些疯狂的浮动(舍入错误)不是幻灯片上我的对象模糊的原因。可以放心地忽略它们。

2) 幻灯片的像素值似乎是 0.375 的倍数。因此,要将对象向右移动 1px,您实际上必须将其向右移动 0.375。如果要对幻灯片对象的值进行四舍五入,则需要将值 * 2.66666 的结果四舍五入,然后将结果乘以 0.375。

例子:

pageElements[0].setTop(Math.round((pageElements[0].getTop() * 2.6666666666666))*.375);

因此,现在可以在我创建的侧边栏工具中对对象进行像素完美编辑的最初目标。哇!

于 2017-12-15T02:14:28.383 回答