草庐IT

canvas2D

全部标签

html - 模拟 document.getElemetById ('.form' ).getContext ('2d' ) 使用 sinon

我使用karma、mocha、chai、sinon和Angular模拟进行单元测试。在我的$scope.loadChart中,我正在Canvas标签中绘制图表。我正在使用http://www.chartjs.org/绘制图表。Chartjs需要这段代码,document.getElemetById('#canvas').getContext('2d')。我如何在Sinon中stub这个?我的测试卡在了这一行。 最佳答案 您可以stubdocument.getElementById并让它返回一个Canvas对象,该对象被stub并编程

javascript - HTML5 SVG vs Canvas 用于大量行?

问题:在下面的情况下,canvas比svg更合适吗?案例:我正在绘制一个与此类似的图表(使用d3js库)(但数据更多):http://mbostock.github.com/d3/talk/20111116/iris-parallel.html它基于svg并且它适用于数千行(最多5000行),添加更多行(svg路径)会显着降低性能(页面滚动变慢)请记住:我需要添加鼠标事件(这在svg中很方便) 最佳答案 通常svg更适合矢量图像,就像您的示例一样。然而canvas在现代浏览器中有很多好处,比如硬件加速,所以对于画线,只要缩放,平移等

javascript - HTML5 SVG vs Canvas 用于大量行?

问题:在下面的情况下,canvas比svg更合适吗?案例:我正在绘制一个与此类似的图表(使用d3js库)(但数据更多):http://mbostock.github.com/d3/talk/20111116/iris-parallel.html它基于svg并且它适用于数千行(最多5000行),添加更多行(svg路径)会显着降低性能(页面滚动变慢)请记住:我需要添加鼠标事件(这在svg中很方便) 最佳答案 通常svg更适合矢量图像,就像您的示例一样。然而canvas在现代浏览器中有很多好处,比如硬件加速,所以对于画线,只要缩放,平移等

javascript - 使用 Canvas 和 JavaScript 进行多边形表示的图像采样算法?

首先我不习惯处理图像,所以如果我的措辞有问题,请原谅。我希望将一张图像放到HTML5Canvas上,对其进行采样,减少采样,然后主要使用三Angular形和其他一些多边形创建图像的多边形表示,并将该图像绘制到Canvas。但我不知道从哪里开始使用算法来做到这一点。这种算法需要什么样的伪代码?这张图片可以更好地理解最终结果: 最佳答案 我会做以下事情:创建一个由随机放置的点组成的区域。创建Voronoidiagram从点点滴滴。这是我过去为此使用过的一个很好的JavaScript库:https://github.com/gorhill

javascript - 使用 Canvas 和 JavaScript 进行多边形表示的图像采样算法?

首先我不习惯处理图像,所以如果我的措辞有问题,请原谅。我希望将一张图像放到HTML5Canvas上,对其进行采样,减少采样,然后主要使用三Angular形和其他一些多边形创建图像的多边形表示,并将该图像绘制到Canvas。但我不知道从哪里开始使用算法来做到这一点。这种算法需要什么样的伪代码?这张图片可以更好地理解最终结果: 最佳答案 我会做以下事情:创建一个由随机放置的点组成的区域。创建Voronoidiagram从点点滴滴。这是我过去为此使用过的一个很好的JavaScript库:https://github.com/gorhill

HTML5 Canvas - 上下文相关菜单

我正在HTML5Canvas上绘制许多矩形,并希望能够右键单击这些框并显示上下文相关菜单。菜单应该特定于被点击框的类型,并且完全由用户指定,即它不应该包括重新加载、另存为、打印等...谁能给我指点一下吗?谢谢,保罗 最佳答案 您可以为上下文菜单添加事件监听器来处理鼠标右键请求://listenforcontextmenurequestscanvas.addEventListener('contextmenu',handleContextmenu,false);然后在处理程序中,您检查每个矩形是否命中:functionhandleCo

HTML5 Canvas - 上下文相关菜单

我正在HTML5Canvas上绘制许多矩形,并希望能够右键单击这些框并显示上下文相关菜单。菜单应该特定于被点击框的类型,并且完全由用户指定,即它不应该包括重新加载、另存为、打印等...谁能给我指点一下吗?谢谢,保罗 最佳答案 您可以为上下文菜单添加事件监听器来处理鼠标右键请求://listenforcontextmenurequestscanvas.addEventListener('contextmenu',handleContextmenu,false);然后在处理程序中,您检查每个矩形是否命中:functionhandleCo

html - 像在 HTML Canvas 或 CSS 中一样为 SVG <image> 定义源矩形

在HTML5Canvas中,您可以将图像作为一个整体来绘制,或者只绘制其中的一部分,或者只将其中的一部分绘制到任意矩形(可以缩放)。以下是这三者的示例:下面是用于绘制这三个示例的代码:ctx.drawImage(img,0,0);ctx.drawImage(img,//sourcerect50,50,70,70,//destinationrect0,200,70,70);ctx.drawImage(img,//sourcerect50,50,70,70,//destinationrect0,270,30,30);这在CSS中也相对容易做到。我的问题是,对于给定的图像,如何使用SVG实现

html - 像在 HTML Canvas 或 CSS 中一样为 SVG <image> 定义源矩形

在HTML5Canvas中,您可以将图像作为一个整体来绘制,或者只绘制其中的一部分,或者只将其中的一部分绘制到任意矩形(可以缩放)。以下是这三者的示例:下面是用于绘制这三个示例的代码:ctx.drawImage(img,0,0);ctx.drawImage(img,//sourcerect50,50,70,70,//destinationrect0,200,70,70);ctx.drawImage(img,//sourcerect50,50,70,70,//destinationrect0,270,30,30);这在CSS中也相对容易做到。我的问题是,对于给定的图像,如何使用SVG实现

javascript - 如何为 facebook 应用程序设置 Canvas url?

这个问题之前已经被问过很多次,但是,最近Facebook开发者网站显然发生了变化,因此没有任何地方可以找到解决方案。问题如下:(抱歉,您使用的应用程序配置错误。请稍后重试。)现在,以下是应用程序设置页面:即,没有设置CanvasURL或安全CanvasURL的选项。我应该怎么做才能纠正这个问题? 最佳答案 我还没有这个新的仪表板用户界面,但在“添加平台”按钮下寻找类似于“Facebook上的应用程序”的内容 关于javascript-如何为facebook应用程序设置Canvasurl?