在Google Apps脚本中获取直线旋转角度

问题描述

尝试使用getRotation()方法获取直线的旋转角度,但始终返回 0.0

尝试此方法https://developers.google.com/apps-script/reference/slides/line#getrotation

获取输出: 在线从顶部或底部移动总是旋转0.0。

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(在线截图)

解决方法

旋转!=线的角度:

检查Line rotation

与其他页面元素一样,线的旋转不是线的垂直角度,而是其边界框的旋转。创建具有指定起点和终点的线时,其旋转始终为0°

如果要基于直线的起点和终点来获取直线的实际旋转,则必须获取这些点的位置。

您可以通过getStart()getEnd()获得这些职位。这两种方法都返回一个Point,其坐标可以通过getX()getY()访问。

基于这些坐标,您可以使用一些基本的三角函数来计算直线和所需轴之间的角度。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...