svg - 从 svg 到 Raphael

标签 svg raphael

我有一个 svg 文件,我正在尝试在 Raphael 中渲染它。问题出在转型上。我无法获得扩展和转换的路径。谁能告诉我我做错了什么?

这是我在 svg 中的原始代码:

<svg  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" width="1000.000000pt" height="618.000000pt" viewBox="0 0 1024 768" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" zoomAndPan="magnify" onload="javascript: init(evt);">
<g transform="translate(0.000000,309.000000) scale(0.100000,-0.100000)" fill="#cc6633" stroke="none">
<path d="M410 1078 c0 -20 -8 -32 -27 -42 -16 -9 -54 -39 -86 -68 l-58 -53 67 -75 c67 -76 78 -83 217 -140 58 -24 77 -37 77 -51 0 -11 -7 -19 -17 -19 -15 0 -16 -2 -3 -10 21 -13 53 -12 73 3 19 13 46 110 47 165 0 17 5 32 11 32 27 0 50 44 47 89 -3 39 -7 48 -30 59 -38 18 -35 39 9 80 30 27 35 35 22 42 -8 5 -90 10 -182 12 l-167 3 0 -27z" id="Allegheny" label="Allegheny" >
</path>
</g>
</svg>

这是我的拉斐尔代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Raphaël </title>
        <style>
            #canvas {

            }
            #paper {

            }
            #Allegheny {


            }
        </style>
        <script src="raphael-min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" charset="utf-8">
        window.onload = function () {
            var R = Raphael("paper", 1000, 800);
            var attr = {
                fill: "#ccc",
                stroke: "#333",
                "stroke-width": 1,
                "stroke-linejoin": "round"


            };
            var pa = {};
            pa.Allegheny = R.path("M410 1078 c0 -20 -8 -32 -27 -42 -16 -9 -54 -39 -86 -68 l-58 -53 67 -75 c67 -76 78 -83 217 -140 58 -24 77 -37 77 -51 0 -11 -7 -19 -17 -19 -15 0 -16 -2 -3 -10 21 -13 53 -12 73 3 19 13 46 110 47 165 0 17 5 32 11 32 27 0 50 44 47 89 -3 39 -7 48 -30 59 -38 18 -35 39 9 80 30 27 35 35 22 42 -8 5 -90 10 -182 12 l-167 3 0 -27z").attr(attr);
            R.setViewBox(0, 0, 1024, 768, false);
        R.transform(T0,309);
        R.transform(s0.1);

        };
        </script>
    </head>
    <body>
        <div id="canvas">
            <div id="paper"></div>
            <div id="Allegheny"></div>
        </div>

    </body>
</html>

您可以看到http://blogs.sites.post-gazette.com/demo/index.html

最佳答案

几件事:

  1. transform() 的参数两边加上引号。
  2. 您可以在一次调用中包含所有转换(请参阅 API)。
  3. 您可能想要转换 pa.Allegheny,而不是 R

所以:

pa.Allegheny.transform("T0,309s0.1");

关于svg - 从 svg 到 Raphael,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10355355/

相关文章:

javascript - d3 : graph looks good in firefox but is cut off in chrome

javascript - 使用 XHTML 中嵌入的 SVG 从 Javascript 创建动画

javascript - SVG 文本元素速度

javascript - RaphaelJS——矢量还是非矢量?

javascript - jquery 有没有列出属性的函数?

html - 如何使 SVG 图像动态匹配高度(1em)和周围文本的基线?

jquery - 背景图像上的 svg 图案

geometry - 通过 raphael js 圆形图像蒙版?

javascript - Raphael element.animate(...) - 指定在动画的每一步执行的回调

javascript - 将 Hammer.js 触摸手势与 jQuery SVG 缩放库集成