SVG 在特定位置的 SVG 内缩放
我是复杂 SVG 的新手,正在从事一些工作,需要帮助。我有几个 SVG 文件,它们已经正确格式化了内容……线条、矩形、文本等。它们是用简单的 X=、Y=、X1=、Y1= 绘制的,并且仅基于整数。最初的 SVG 是为打印而设计的,x/y 位置是根据 300dpi 的打印设置的。
因此,这与来自其他来源的几个 SVG 一起存在,我正在尝试合并到一个新的单个 SVG 文档中。因此,我需要将其中一个元素放置在基于英寸或厘米的位置 (x,y)(根据我到目前为止所读到的内容),但我还需要它们尊重特定的尺寸......比如说2 英寸高,3.4 英寸宽。
由于原始的 SVG 仅基于整数并且没有“英寸”方向,我能做什么......或者,它如何自我缩放。
如果没有正确的 SVG 语法,这里基本上是一些细节。
SVG1 的整体 x/y 矩形面积为 0,0 到 476,100 SVG2 的整体 x/y 矩形区域为 0,0 到 273,24
新的 SVG 需要为 4" x 6"
例如:在向下 1/4"、距顶部 1" 的位置,我需要插入 SVG1 ,即使它是 476x100,也需要缩放到大约 1/2" 高 x 3" 宽的区域。
相似地, 在下2.8英寸、宽1.75英寸的位置,我需要插入SVG2,其尺寸需要大约2英寸高,2.5英寸宽作为最大区域。
可以缩放,但不要倾斜,它们需要保持原始比例而不是被剪裁。如果我能得到基本的理解,我就可以调整最终的尺寸,只是不知道如何获得这项工作的基础设施。
谢谢。
I'm new to complex SVG and working on something and need help. I have a couple of SVG files that are already properly formatted with content.. lines, rectangles, text, etc. They are drawn with simple X=, Y=, X1=, Y1= and based on just whole numbers. The original SVG was designed for printing and the x/y positions were set based on printing at 300dpi.
So this exists with a couple SVG coming from other origins and I'm trying to merge into a new single SVG document. So, one of these elements, I need to put at position (x,y) based on either inches or centimeters (from what I've read so far), but I also need them to respect a specific size of... say 2 in tall, 3.4in wide.
Since the original SVG was based on just whole numbers and no orientation to "inches", what can I do.. or, how can it self-scale.
Without proper SVG syntax, here's basically some of the details.
SVG1 has an overall x/y rectangle area of 0,0 to 476,100
SVG2 has an overall x/y rectangle area of 0,0 to 273,24
The new SVG needs to be 4" by 6"
Ex: at position 1/4" down, 1" across from the top, I need to insert SVG1, and even though it is 476x100, it needs to be scaled into an area about 1/2" tall x 3" wide.
Similarly,
at position 2.8" down, 1.75" across, I need to insert SVG2, and its size needs to be about 2" tall, and 2.5" wide as a maximum area.
Scaled yes, but not to be skewed, they need to keep their original proportions and not clipped. If I can get the basic understanding, I can tweak the final dimensions, just don't know how to get the infrastructure of this working.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
经过多次尝试后,我终于得到了它,以防万一有人对 SVG 感兴趣并且像我一样对 SVG 比较陌生。正如问题中一样,我有一些预先生成的 SVG 输出文件,它们的 X、Y 高度、宽度设置均基于数值,没有英寸、厘米等上下文,但我的要求是适合给定的 X英寸到 Y 英寸范围。
所以,我发现了“defs”标签,这就像声明一个变量,稍后可以在稍后的 SVG 主体中用作“把那个东西放在这里”。在 SVG 的顶部,我能够给出我需要的尺寸。然后,通过使用“g”标签进行分组,我能够以数字方式将某些内容定位到给定的 x,y 位置。然后,在其中,我做了另一个“g”来应用“defs”部分中声明的“变量”的缩放(因为“g”元素中不能有两个“transform”标签)。
我的想法如下,希望详细的评论能够帮助其他人进行 SVG 的研究。
I finally got it after much playing around, just in case anyone is interested and relatively new with SVG as I am. As in the question, I had some pre-generated SVG output files that have their X,Y Height,Width settings all based on numeric value, with no context to inch, centimeter, etc. but my requirement was to fit into a given X inch by Y inch range.
So, I found out about "defs" tag, which is like declaring a variable that can later be used as a "put that thing HERE" within the later SVG body. At the TOP of the SVG, I was able to give the dimensions I needed. Then, by using the "g" tag for grouping, I am able to numerically position something to a given x,y position. Then, within that, I did another "g" to apply a scaling of the "variable" as declared in the "defs" section (as a "g" element can not have two "transform" tags within it).
What I came up with was something like below, and hope the detailed comments can help others in their research dealing with SVG.