问题描述
尝试使用getRotation()
方法获取直线的旋转角度,但始终返回 0.0
尝试此方法: https://developers.google.com/apps-script/reference/slides/line#getrotation
function lineRotation() {
var selection = SlidesApp.getActivePresentation().getSelection();
if(selection.getPageElementRange() !== null){
var pageElements = selection.getPageElementRange().getPageElements()
// Iterate each page elements
pageElements.forEach(function(item,index) {
if(pageElements[index].getPageElementType() == 'LINE'){
var rotation = pageElements[index].asLine().getRotation();
}else{
SlidesApp.getUi().alert('Please select line.');
}
});
}else{
SlidesApp.getUi().alert('Please select elements.');
}
}
更新: 将来的范围-我想旋转并设置线的旋转。如果直线倾斜度水平旋转或直线倾斜度> 45°==>垂直旋转。 https://prnt.sc/uervkw(在线截图)
解决方法
旋转!=线的角度:
与其他页面元素一样,线的旋转不是线的垂直角度,而是其边界框的旋转。创建具有指定起点和终点的线时,其旋转始终为0°。
如果要基于直线的起点和终点来获取直线的实际旋转,则必须获取这些点的位置。
您可以通过getStart()和getEnd()获得这些职位。这两种方法都返回一个Point,其坐标可以通过getX()和getY()访问。
基于这些坐标,您可以使用一些基本的三角函数来计算直线和所需轴之间的角度。