当前位置: 首页 > 知识库问答 >
问题:

在不变换坐标系的情况下在svg中变换图像

薛飞星
2023-03-14

我不熟悉svg。我有一个图像,我想旋转。我已经使用旋转变换旋转了图像,并给了它一个角度和我想要旋转图像的点的坐标。

我的要求是,当我在旋转后拖动图像时,我想检查左上角是否在边界区域内。这在旋转之前起作用。但在旋转后,似乎在将此变换应用于图像后,我的坐标系也以相同的角度旋转。这给我带来了一些问题。

有没有办法在不旋转原始坐标系的情况下旋转图像?此外,若旋转图像,图像的x和y属性也不会更新。

共有1个答案

逄征
2023-03-14

如果将旋转后的图像放入<代码>

示例SVG(我在这里使用了rect,但它对图像的工作方式相同):

<svg with="200" height="200">
    <g id="my_group">
        <rect id="my_rect" x="50" y="50" width="100" height="100"
              transform="rotate(45 100 100)"/>
    </g>
</svg>

JS:

var rect=document.getElementById("my_rect");
console.log("rect=",my_rect.getBBox());
// prints {x: 50, y: 50, width: 100, height: 100}

var group=document.getElementById("my_group");
console.log("group=",my_group.getBBox());
// prints {x: 29.28932, y: 29.28932, width: 141.42135, height: 141.42135 }

演示在这里

 类似资料:
  • 在文档 场景编辑器 和 节点和组件 中,我们介绍了可以通过 变换工具 和编辑 属性检查器 中节点的属性来变更节点的显示行为。这篇文档我们将会深入了解节点所在场景空间的坐标系,以及节点的 位置(Position)、旋转(Rotation)、缩放(Scale)、尺寸(Size) 四大变换属性的工作原理。而 3D 节点相比 2D 节点,在变换属性的 API 用法上做了一些改动,具体内容可参考 3D 节点

  • 我一直在使用Peter Kovesi的MatLab函数进行机器视觉(如果你不知道的话,这些函数非常出色) 我一直在使用极坐标变换将图像转换为极坐标。Peter Kovesi的函数名为“PolarTrans”,可在此处找到-http://www.peterkovesi.com/matlabfns/#syntheticimages 该函数将图像漂亮地转换为极坐标。然而,我也希望发生相反的情况。Pete

  • 在文档 场景编辑器 和 节点和组件 中,我们介绍了可以通过 变换工具 Gizmo 和编辑 属性检查器 中节点的属性来变更节点的显示行为。这篇文档我们将会深入了解节点所在场景空间的坐标系,以及节点的 位置(Position)、旋转(Rotation)、缩放(Scale) 三大变换属性的工作原理。 坐标系 我们已经知道可以为节点设置位置属性,那么一个有着特定位置属性的节点在游戏运行时将会呈现在屏幕上的

  • 5.1.4 多坐标变换 需求描述: 现有坐标系统,父级坐标系统 world,下有两子级系统 son1,son2,son1 相对于 world,以及 son2 相对于 world 的关系是已知的,求 son1原点在 son2中的坐标,又已知在 son1中一点的坐标,要求求出该点在 son2 中的坐标 实现分析: 首先,需要发布 son1 相对于 world,以及 son2 相对于 world 的坐标

  • 5.1 TF坐标变换 机器人系统上,有多个传感器,如激光雷达、摄像头等,有的传感器是可以感知机器人周边的物体方位(或者称之为:坐标,横向、纵向、高度的距离信息)的,以协助机器人定位障碍物,可以直接将物体相对该传感器的方位信息,等价于物体相对于机器人系统或机器人其它组件的方位信息吗?显示是不行的,这中间需要一个转换过程。更具体描述如下: 场景1:雷达与小车 现有一移动式机器人底盘,在底盘上安装了一雷

  • 我正在使用React和Redux,我需要用更新的数据更新我的状态。“我的状态”包含如下对象数组: 所以在这个reducer中,我只想用我的负载替换或更新整个状态数组,但不改变我的状态。我的有效负载还包含与上面相同的对象数组,但包含更新的数据。