【问题标题】:How to map polygon in JavaScript如何在 JavaScript 中映射多边形
【发布时间】:2013-02-18 16:45:40
【问题描述】:

请问您能帮帮我吗?我正在寻找一种方法,如何使用图像文件(.png 或 .jpg)在画布中映射多边形,但我很困惑,我不知道该怎么做......你能告诉我或给教程的链接如何在画布中用图像映射多边形?非常感谢

【问题讨论】:

标签: javascript canvas mapping polygon


【解决方案1】:

好的,我想我现在明白你的问题了。

您想将文本绘制成曲线路径...

好消息/坏消息:

Canvas不能直接这样做。

但是您可以使用 Html SVG 来实现。

您可以使用 Inkscape 等免费程序来设计您的徽标。

然后将其保存为 SVG 格式 (myLogo.svg)。

然后你可以像这样将它加载到画布中:

var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var img=new Image();
img.onload=function(){
    ctx.drawImage(img,0,0);
}
img.src="http://mySite.com/myLogo.svg";

这是一个快速演示,您可以根据自己的需要创建 SVG。

这是一个小提琴:http://jsfiddle.net/m1erickson/v4EX3/

<!doctype html>
<html>
<head>
    <style>
        body{ background-color: ivory; }
        div{float:left;}
    </style>
</head>

<body>
<div>
<svg viewBox = "0 0 200 120">
     <defs>
         <path id = "curvedPath" d = "M 10,90 Q 100,15 200,70 Q 340,140 400,30"/>
     </defs>
     <g fill = "white">
         <use x = "0" y = "0" xlink:href = "#curvedPath" stroke = "black" stroke-width="40" fill = "none"/>
         <text font-size = "20">
             <textPath xlink:href = "#curvedPath">
                Use SVG to put your text on a curved path like this!
            </textPath>
         </text>
     </g>
 </svg>
</div>
</body>
</html>

【讨论】:

  • 哦,有没有办法解决这个问题:stackoverflow.com/questions/4774172/…?我将从图片中制作三角形,然后逐渐绘制它们,然后将它们变成我想要的样子或类似的东西?因为图片要900左右所以可能比较难...
  • 大笑!我以为我在理解你,但现在我像以前一样迷失了。好的,去raphaeljs.com 了解如何使用这个很棒的 SVG 库来创建 SVG 对象。特别是,请查看 Raphael.getPointAtLength(path, length)。使用此方法,您可以定义路径并沿该路径以指定长度放置对象。您可以沿路径绘制三角形、旋转它们等等! Raphael 是一个很棒的图书馆,但考虑到你想做的事情,你的学习曲线将会很陡峭。祝你好运!
猜你喜欢
  • 2014-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多