处理中SVG形状的大小调整不正确?

时间:2014-04-23 20:53:02

标签: svg processing

我有一个SVG文件,其中我已将一段代码作为测试文件;测试文件可以在这里找到:tester1.svg,我也在下面粘贴了它。请注意,其内容从左到右几乎对称地延伸 - 这就是evince呈现它的方式:

tester1_evince.png

此测试程序以及原始SVG文件显示相同的问题 - 如果我运行此处理MWE代码(例如,test.pde):

PShape s;
int sz=90;
void setup() {
  size(600, 600); // size(600, 600, P2D);
  s = loadShape("tester1.svg");
  smooth();
}

void draw() {
  background(255);
  stroke(150);
  pushMatrix();
  translate(100,100);
  rotate(0.6);
  shapeMode(CENTER);
  shape(s, 0, 0, sz, sz);
  // draw "bounding box" rectangle
  noFill();
  rectMode(CENTER);
  rect( 0, 0, sz, sz );
  popMatrix();
}

...然后我把它作为输出:

tester1_processing

...即 - SVG形状读取正常,旋转正常 - 但它不能完全缩放到请求的大小sz,如边界框矩形所示。

有没有人知道它为什么会发生 - 以及如何让形状完全缩放?

请注意:

  • 我尝试过在Inkscape中制作的一些简单形状(例如圆圈,并使文档边界与圆圈大小相匹配),并且它们没有演示此问题
  • 如果我将size(600, 600, P2D);与上面的草图和SVG一起使用,那么输出完全混乱(全部随机红色);但是如果我对原始SVG和略有不同的草图使用相同的边界,则边界与P2D匹配良好(但不是没有)。

可能需要一些SVG指令,但我不太了解SVG规范,也不知道Processing。这是tester1.svg

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="809pt" height="669pt" viewBox="0 0 809 669" version="1.1" xmlns="http://www.w3.org/2000/svg">
<g id="#ffffffff">
</g>
<g id="#881d1dff">
<path fill="#d50f10" opacity="1.00" d=" M 779.88 266.03 C 786.38 264.30 794.20 264.63 799.10 259.31 C 796.10 268.46 791.88 277.13 787.63 285.75 C 784.30 291.72 781.27 297.91 777.16 303.41 C 683.44 303.32 589.72 303.42 496.00 303.36 C 489.66 303.27 483.33 303.79 477.00 303.78 C 431.99 303.71 386.98 303.78 341.98 303.75 C 328.33 303.12 314.66 303.46 301.00 303.37 C 246.67 303.37 192.33 303.38 138.00 303.38 C 103.01 303.28 68.01 303.57 33.03 303.23 C 30.80 299.69 28.66 296.11 26.62 292.46 C 23.10 286.12 19.03 279.96 17.07 272.90 C 23.29 272.92 29.53 272.77 35.74 273.38 C 74.86 276.57 113.91 280.63 153.04 283.73 C 168.01 284.45 183.03 283.68 197.99 284.73 C 218.32 285.15 238.66 284.86 258.99 284.97 C 267.35 285.08 275.65 283.81 284.00 283.85 C 309.66 283.95 335.33 283.83 361.00 283.92 C 372.36 283.94 383.64 282.38 394.99 282.06 C 402.34 281.86 409.65 280.90 417.00 280.85 C 506.34 280.87 595.67 280.85 685.00 280.86 C 689.93 280.82 694.88 281.19 699.80 280.64 C 705.34 279.98 709.19 275.47 714.07 273.23 C 719.45 270.76 725.26 269.24 731.13 268.51 C 747.35 267.23 763.91 270.07 779.88 266.03 Z" />
</g>
<g id="#cfbbbbff">
<path fill="#cfbbbb" opacity="1.00" d=" M 556.18 330.28 C 559.51 330.43 554.63 333.27 556.18 330.28 Z" />
</g>
</svg>

0 个答案:

没有答案