缩放和镜像 SVG 对象

2023-12-08

如何最轻松地首先缩放对象,例如当前大小的 2 * 倍,然后垂直和水平翻转,或两者都翻转?

截至目前,我可以设置“scale(2,2)”,使其变为宽度和高度的 2 倍,但无法与垂直翻转的scale(-1, 1) 同时翻转它。

我正在以编程方式创建 SVG 对象,作为导出的格式。


要同时应用缩放和翻转,只需在变换中列出两者即可:

transform="scale(2,2) scale(-1,1)"

或者简单地组合这些值:

transform="scale(-2,2)"

当然,负比例的问题是对象会翻转 SVG 的原点(左上角),因此它们可能会超出文档的边缘。您还需要通过添加翻译来纠正此问题。

例如,假设我们有一个 100×100 的文档。

<svg width="100" height="100">
    <polygon points="100,0,100,100,0,100"/>
</svg>

要垂直翻转它,你可以:

<polygon points="100,0,100,100,0,100" transform="scale(2,-2)"/>

要纠正屏幕外的运动,您可以...

(选项 1)在翻转之前将其移至负值(这样它就会在屏幕上翻转回来):

<polygon points="100,0,100,100,0,100" transform="scale(2,-2) translate(0,-100)"/>

(此处将翻译列在第二位,因为变换列表是从右到左有效应用的)

(选项 2)或者,您可以随后将其正向移动(按缩放后的大小):

<polygon points="100,0,100,100,0,100" transform="translate(0,200) scale(-2,2)"/>

这是一个展示垂直翻转、水平翻转和双向翻转的演示

Update

翻转(就位)屏幕上某处已存在的对象。首先确定它的边界框(最小X、最小Y、最大X、最大Y), or 中心X,世纪如果你已经知道了。

然后将以下内容添加到其转换中:

translate(<minX+maxX>,0) scale(-1, 1)   // for flip X
translate(0,<minY+maxY>) scale(1, -1)   // for flip Y

或者如果您有可以使用的中心

translate(<2 * centreX>,0) scale(-1, 1)   // for flip X

所以在你的例子中:

<rect x="75" y="75" width="50" height="50"  transform="translate(-100, -100) scale(2, 2) scale(1, 1) rotate(45, 100, 100)" />

The 最小X+最大X达到 200。因此,要水平翻转,我们在前面添加:

translate(200,0) scale(-1, 1)

所以最终的对象就变成了:

<rect x="75" y="75" width="50" height="50"  transform="translate(200,0) scale(-1, 1) translate(-100, -100) scale(2, 2) scale(1, 1) rotate(45, 100, 100)" />

演示在这里

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

缩放和镜像 SVG 对象 的相关文章

  • 为什么将 x 和 y 设置为 0 时 svg 文本会消失?

    我刚刚开始阅读有关svg我提出了以下问题 我正在创建一个简单的svg with a text里面如下图所示 从我的阅读中我了解到x and y of the text标签声明文本在标签内的位置svg space 为什么当我同时设置x and
  • 融化R中的下半矩阵

    如何融化下半三角形加对角矩阵 11 NA NA NA NA 12 22 NA NA NA 13 23 33 NA NA 14 24 34 44 NA 15 25 35 45 55 A lt t matrix c 11 NA NA NA NA
  • 如何在 React Native 上显示 SVG 文件?

    我想显示 svg 文件 我有一堆 svg 图像 但我找不到显示的方式 我尝试使用Image and Use的组成部分反应本机 svg https github com magicismight react native svg但他们不这样做
  • CSS使背景图像使用字体字符

    我想使用字体字符 例如来自 font awesome 作为输入元素的背景图像
  • MATLAB - 通过垂直连接子矩阵重新排列矩阵

    我在执行以下任务时遇到问题 假设一个 3x6 矩阵 A 0 2787 0 2948 0 4635 0 8388 0 0627 0 0435 0 6917 0 1185 0 3660 0 1867 0 2383 0 7577 0 6179 0
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得
  • 有没有办法将 SWF 转换为 SVG 格式?

    有没有办法将 FLA 或 SWF 转换为 SVG 格式 它可以是一个软件吗 或者甚至是网络转换器 我尝试了一些方法 但没有一个有效 所有这些似乎都已经过时了 不 SWF 支持的功能太多 而 SVG 格式无法创建有效的 SWF 版本 如果您只
  • 在网格中查找具有相同值的相邻单元格。想法如何改进这个功能?

    我是 Python 新手 学习了 1 个多月 我尝试创建 Tic Tac Toe 然而 一旦我完成了它 我决定扩展棋盘 从 3x3 到 9x9 具体取决于客户的输入 并通过在棋盘上的任意位置连接 4 个行 列或对角线来获胜 因此 我需要一个
  • R 中 SVG 图形的最佳设备? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想从 R 导出 SVG 图形 似乎有两种选择 RSvgDevice 和 Cairo 有人可以对这些包发表评论吗 是默认的还是明显比另一个
  • 悬停时为 SVG 制作动画

    我正在尝试在悬停时为 SVG 文件设置动画 默认情况下 它可以使用 svg 函数实现出色的动画效果 例如
  • 使用泛型全面实现特征

    我正在通过实现矩阵数学来练习 Rust 但遇到了一些障碍 我定义了我认为与矩阵相关的特征 trait Matrix
  • 如何使用合并或替换来更新 R 中具有多列的表

    我想做一些与这个问题非常相似的事情 如何使用 merge 更新 R 中的表 https stackoverflow com questions 3190118 how to use merge to update a table in r
  • 将整个网页设计为 SVG 文件

    免责声明 我意识到鉴于标题的荒谬 这听起来像一个巨魔 然而 这是一个真正的问题 我的背景涉及OpenGL x86 汇编 我最近开始学习网络编程 我真的很喜欢 SVG CSS 并且想知道 为什么人们不使用 SVG 设计整个网页 Context
  • Python模糊字符串匹配作为相关样式表/矩阵

    我有一个文件 其中包含 x 个字符串名称及其关联的 ID 本质上是两列数据 我想要的是一个格式为 x by x 的相关样式表 将相关数据作为 x 轴和 y 轴 但我想要 fuzzywuzzy 库的函数 fuzz ratio x y 作为输出
  • 如何按物种矩阵显示站点内植物物种生物量?

    我之前问过 如何将两列显示为二进制 存在 不存在 矩阵 这个问题得到了两个很好的答案 我现在想更进一步 在原始站点按物种列添加第三列 该列反映每个地块中每个物种的生物量 第 1 列 地块 指定约 200 个地块的代码 第 2 列 物种 指定
  • SVG SMIL animateTransform 缓动

    我正在尝试向简单的 SVG SMIL 动画添加计时功能 显然 计时 缓动可以通过以下方式设置keySplines属性 但是在我的示例中它不起作用
  • 添加鼠标事件到svg ,检测网格悬停

    我有一个有点复杂的问题 我正在尝试通过 svg 渲染网格 然后将事件侦听器添加到网格中 目前我正在通过渲染网格
  • SVG 中虚线的悬停事件

    带有线 或路径 的 SVG 使用stroke dasharray当用户将鼠标悬停在虚线的实心部分上时 似乎只会触发 CSS 和 JS 悬停事件 https codepen io anon pen YeXoZy https codepen i
  • 高图表的分散工具提示未显示

    我有一个散点图和条形图 我无法查看酒吧上方散点的工具提示 这是小提琴http jsfiddle net tZ9Rt http jsfiddle net tZ9Rt 我正在使用这两个系列 series type scatter index 2
  • CSR 矩阵 - 矩阵乘法

    我有两个方阵A and B 我必须转换B to CSR Format并确定产品C A B csr C 我在网上找到了很多关于CSR 矩阵 向量乘法 http www mathcs emory edu cheung Courses 561 S

随机推荐

  • 在悬停时添加底部边框,仅限 CSS

    如何使一条线在悬停时仅出现在链接图像的底部 我可以在悬停时显示内部边框 但我只想显示 border bottom 这是我到目前为止所拥有的 即使它使用轮廓属性而不是边框 links a img links a border none flo
  • 限制 Wagtail Steamfield 中特定 DocumentChooserBlock() 块的文件类型

    我试图限制 wagtail 流字段块内特定 DocumentChooserBlock 的查询结果 我已经知道您可以使用以下方法限制页面类型的文档选择器的文件类型hooks 但我想避免限制页面范围内可能的文件类型 以防我需要它们用于其他 St
  • boost::需要 RTTI 吗?

    在 Boost 网站上 我没有找到有关 boost any 的使用或 RTTI 的信息 我在一些地方读到这是一个要求 但后来我构建了一个简单的测试项目 并且它可以在使用和不使用 RTTI 的情况下构建 那么 由于 RTTI 的性能和内存问题
  • 如何在渐变形状上获得色标?编程语言

    如何在形状上获得色标 我正在创建一个树流程图 我想给它们一个渐变 我还想按百分比更改渐变 所以我希望一个节点的两个颜色停止点都为 50 所以到目前为止我所拥有的给出渐变图案的代码是 QNode Shapes 1 Fill TwoColorG
  • PHP 会话在服务器中不起作用

    我正在用 php 设计一个网站 完成后我将内容上传到服务器中 该页面在本地主机中运行良好 但上传后 页面甚至无法加载 在每个页面的顶部我都包含一个名为startsession php 的页面 该页面内容如下 session start he
  • 使用 EF Core 级联删除

    我目前在使用 EF Core 时遇到一些问题 我有一些需要删除的数据 并且我正在努力了解 Fluent API 的工作原理 确切地说是关于 OnDelete 功能 考虑经典的博客 帖子场景微软自己的网站 我想知道什么实体 到底是OnDele
  • ajax调用jquery函数后无法正常工作

    标题 照片 php cmdclose click function var id this id post cmddel php id id setTimeout function
  • 根据日期范围按日/月/周分组

    这是参考这个question 这是我的数据集 rating 4 ceatedAt ISODate 2016 08 08T15 32 41 262 0000 rating 3 createdAt ISODate 2016 08 08T15 3
  • 将 rvmsudo 与 Capistrano 结合使用

    我正在尝试设置 capistrano 来轻松部署我的 Rails3 应用程序 我对 Rails 还很陌生 除了我试图重新启动独立的乘客服务器之外 一切都正常工作 我在同一台服务器上运行redmine 所以我遵循http blog phusi
  • 如何在 C++ Autotools 项目中禁用 C 编译器

    我正处于向 C 库添加 Autotools 支持的早期阶段 此时我正在跑步autoreconf具有以下配置 cat Makefile am AUTOMAKE OPTIONS foreign bin PROGRAMS cryptest cat
  • jQuery Draggable 到基于 iFrame 的 Sortable 的偏移问题

    我在解决与将可拖动元素放入 iFrame 内的可排序区域相关的偏移问题时遇到了很多麻烦 下面的倾斜示例来演示该问题here 确保窗口相当窄 否则很难将元素放入 iFrame 中 很明显 您不能拖动该项目并将其放在指定位置 而是必须将其拖动到
  • SQL LIKE 查询失败 - 准备好的语句中出现致命错误

    我有以下代码 countQuery SELECT ARTICLE NO FROM WHERE upper ARTICLE NAME LIKE if numRecords con gt prepare countQuery numRecord
  • 实体框架支持多线程吗?

    我正在编写一个针对实体框架 6 1 3 的 C NET4 5 控制台应用程序 我使用工作单元范例如下 public class UnitOfWork IUnitOfWork IDisposable private readonly Data
  • cordova平台添加android在JAVA_HOME中出现错误

    我刚刚在 Windows 8 中安装了 cordova 3 3 当我使用命令 cordova platform add android 时 我收到此错误消息 Error failed to run java version make sur
  • Scala slick 2.0 updateAll 相当于 insertALL?

    寻找一种使用 slick 进行批量更新的方法 是否有与 insertALL 等效的 updateAll 到目前为止 古尔的研究让我失败了 我有一个具有不同状态的案例类别列表 每个都有不同的数值 因此我无法运行典型的更新查询 同时 我想保存多
  • 如果 VBA 中出现错误?

    是否可以在 VBA 中使用具有与 Iferror value value if error 或 Iserror value 类似功能的东西 我试着写 If IsError Cells i c curr Then CODE BLOCK 1 e
  • 使用database/sql时如何获取返回的行数?

    给定以下函数 func me OrderService GetOrders orderTx sql Tx orderId int orders sql Rows orders err ecommTx Query SELECT FROM or
  • 如何为nginx配置pem文件?

    我有3个文件 添加信任外部CARoot crt COMODORSAAddTrustCA crt COMODORSADomainValidationSecureServerCA crt 还有一个密钥库 如何创建 pem 文件 我试图将其内容放
  • 警告消息“newdata”有 1 行,但在 R 中找到的变量有 16 行

    我应该使用预测函数来预测何时fjbjor是 5 5 我总是收到此警告消息 我尝试了很多方法 但它总是出现 所以有人能看到我在这里做错了什么吗 这是我的代码 fit lm lt lm fjbjor amagn data bjor summar
  • 缩放和镜像 SVG 对象

    如何最轻松地首先缩放对象 例如当前大小的 2 倍 然后垂直和水平翻转 或两者都翻转 截至目前 我可以设置 scale 2 2 使其变为宽度和高度的 2 倍 但无法与垂直翻转的scale 1 1 同时翻转它 我正在以编程方式创建 SVG 对象