2012-10-04 51 views

回答

1

我和Raphael一起工作过,并且必须制作像您请求的独特形状。不幸的是,如果它不是一个内置的形状原型,你将不得不使用raphael.path()。

创建这些路径可能有点噩梦,但为了帮助您,我建议使用svg编辑器为您创建路径字符串。我将使用Adobe Illustrator,绘制自己的形状,将其保存为svg文件,然后在文本编辑器中打开该svg文件并将路径字符串拉出(其路径标记的“d”属性)。你可能需要玩第一个以“m”或“M”开头的坐标(小写的m是相对起始点,大写字母绝对是我相信的),并调整形状将在svg的上下文中开始的位置图片。这有点跟踪和错误。

如果没有Adobe Illustrator中,你可以使用一个免费的程序一样Inkscape中甚至使用在线编辑器,SVG像这样的:http://svg-edit.googlecode.com/svn/trunk/editor/svg-editor.html(请在顶部的“编辑源”按钮左边抢道)

另外,我想看看规范的SVG路径元素在这里:http://www.w3.org/TR/SVG/paths.html#PathElement

对不起它不是最简单的方法,但真正实现了“微笑”形状(除非你发挥创意的唯一途径,层2个圆圈在彼此的顶部,但1圈将不得不淡入背景 - 在你的情况下,这是一个渐变,这使得它很难做到)

+0

谢谢Zgood分享信息,任何想法我应该如何分组这个paper.path('M111.271,89.304C105.554,103.75,91.456,114,75,114s-30.553-10.25-36.271-24.696l-4.576,4.576 C41.292,109.299,56.892,120,75,120c18.107,0,33.708-10.701,40.847-26.12L111.271,89.304z')。attr(银)到当前设置? – user1547007

+0

您应该能够将路径与集合中的其他形状组合起来没有任何问题。 'var circle = paper.circle(50,40,10); var p = paper.path(“”); var st = paper.set(); st.push(circle,p);' – zgood