我正在尝试在我的 Web 应用程序中制作一种绘画编辑器。为此,我正在研究 wPaint ( https://github.com/websanova/wPaint ),它是一个 jQuery 插件。有了这个,我可以在鼠标悬停上绘制形状,创建矩形、线条和圆形。
虽然这是一个很棒的插件,但我不能像这样绘制混合的矩形和圆形:
是否有任何 jQuery 插件或 HTML5 Canvas 库可以像这样在鼠标悬停时绘制图像?
我正在做一个项目,您可以使用鼠标绘制您给定的形状(和任何其他形状)。然后,您可以使用 HTML5 和 Canvas 将结果导出为 Javascript 代码。
我的项目在 http://canvimation.github.com/
我的项目的源代码位于https://github.com/canvimation/canvimation.github.com
使用网格获得所需的直角。
构建形状和完成的形状
导出的代码
<!DOCTYPE HTML>
<html>
<head>
<style>
#canvasarea
{
border:black 1px solid;
}
</style>
<!--[IF LT IE 9]><script type="text/javascript" src = "excanvas.js" ></script><![endif]-->
<script type="text/javascript">
function setcanvas()
{
var canvas = document.getElementById("canvasarea");
if (canvas.getContext)
{
var ctx = canvas.getContext("2d");
drawcanvas(ctx);
}
else
{
alert("Canvas NOT supported");
}
}
function drawcanvas(ctx)
{
//Shape0;
ctx.shadowColor ="rgba(0,0,0,0)";
ctx.strokeStyle ="rgba(0,0,0,1)";
ctx.lineWidth = 1;
ctx.lineCap = "butt";
ctx.lineJoin = "miter";
ctx.beginPath();
ctx.moveTo(177,118);
ctx.bezierCurveTo(237,176,296,177,357,118);
ctx.bezierCurveTo(357,148,357,208,357,238);
ctx.bezierCurveTo(312,238,222,238,177,238);
ctx.bezierCurveTo(177,208,177,148,177,118);
ctx.closePath();
ctx.stroke();
ctx.shadowOffsetX = 15;
ctx.shadowOffsetY = 15;
ctx.shadowBlur = 0;
ctx.shadowColor = "rgba(0,0,0,0)";
ctx.fillStyle = "rgba(255,255,255,0)";
ctx.fill();
}
</script>
</head>
<body onload="setcanvas()">
<canvas id="canvasarea" width="1000" height="500"></canvas>
</body>
</html>