草庐IT

canvas2d

全部标签

javascript - 在 JavaScript Canvas 中沿直线移动一个点

假设我有一条线的坐标(25,3545,65,30,85-这将是一条分为两部分的线)。我需要每帧以恒定距离沿该线移动一个点(汽车)。我该怎么做? 最佳答案 嘿,所以你的2条线的坐标为(25,35)(45,65)(30,85),你要移动的点将放置在这些坐标(25,35)并且你希望它向第二个坐标(45,65)移动(第一条线段的末端)。第一步是获取点将要移动的方向,方向是点位置与目标位置之间的Angular。要找到这个Angular,您可以使用Math.atan2(),将targetpositionY-thepointpositionY作为

javascript - 使用 <canvas> 将非常大的 SVG 转换为 PNG

我正在尝试将一个大的SVG(它的数据URL大约有750000-1000000个字符)转换为PNG,方法是将它的数据URL通过图像传递到Canvas中,但图像只加载了大约1/4的图像SVG。创建方式:varsvg_xml=(newXMLSerializer()).serializeToString(svg),url='data:image/svg+xml;base64,'+btoa(svg_xml);varimg=newImage();img.width=730;img.height=300;img.onload=function(){varcanvas=document.create(

javascript - 绘制到 HTML 5 Canvas 的最快方法是什么?

我正在研究仅使用HTML的Canvas作为显示媒体制作游戏的可能性。以我需要完成的示例任务为例,我需要从多个等距图block构建游戏环境。当然,在2D中工作意味着它们必须采用矩形包装,因此图block之间有很大的重叠。我已经足够大了,这个问题的自然解决方案是调用BitBltMasked。哦等等,不,HTMLCanvas没有像BitBlt这样简单和令人愉悦的东西。似乎将像素数据转储到Canvas中的唯一方法是使用没有忽略alphachannel的有用绘图模式的drawImage()或使用在数组中具有图像数据的ImageData对象。使用权。是。界限。检查。和。所以。狗。慢。好吧,这与其说

javascript - "Undo"用于编写文本的 Canvas 转换

当使用Canvas应用转换时,生成的文本也(显然)被转换。有没有办法防止某些影响文本的转换,例如反射?例如,我设置了一个全局变换矩阵,使Y轴指向上方,X轴指向右侧,(0,0)点位于屏幕中心(您对数学坐标系的期望)。但是,这也会使文本颠倒。constsize=200;constcanvas=document.getElementsByTagName('canvas')[0]canvas.width=canvas.height=size;constctx=canvas.getContext('2d');ctx.setTransform(1,0,0,-1,size/2,size/2);con

javascript - Canvas 仅在使用 fabric.js 的单击事件上呈现自定义 webfont

我在自定义webfonts和fabric.js方面一直存在问题。我的应用程序使用了大量自定义网络字体,我在将iText添加到我的Canvas时初始化了它们:vartext=newfabric.IText("MyText",{fontFamily:"SomeCustomFontFamily",fontSize:50,top:0,left:0,fill:"#000000"});canvas.add(text);canvas.bringToFront(text);canvas.setActiveObject(text);canvas.renderAll();只有在我单击Canvas上的iTe

javascript - 如何使用多个 Canvas 上下文?

我想使用experimental-webgl和2dCanvas上下文。绘制3d对象后,我想在其上绘制一些2d对象。我应该怎么做? 最佳答案 您需要一个单独的Canvas。您可以将另一个Canvas放在第一个Canvas上,这不算是不好的做法。 关于javascript-如何使用多个Canvas上下文?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8466519/

javascript - 用于叠加渐变的 HTML5 Canvas globalCompositeOperation 不会增加更高的强度?

我目前正在研究heatmap.js修复,我想知道是否有人知道是否可以使用实现以下效果的2d渲染上下文。我有一个从黑色(alpha0.5)到透明40像素半径的径向渐变。径向梯度的中心在x=50,y=50我有另一个从黑色(alpha0.5)到透明的径向渐变,半径为40像素。径向梯度的中心在x=80,y=50两个渐变是重叠的。我现在的问题是:重叠区域被加在一起导致比径向梯度中心更高的alpha值,从而显示错误的数据(例如,由于梯度之间的这些添加,热图中更热的区域)看看下面的gist,通过在您的控制台中执行它,您可以看到问题所在。预期的行为是:最暗的区域是渐变中心,两个渐变的重叠区域合并但不相

javascript - HTML5 canvas 中的简单加载动画

我正在寻找一个简单的图像加载动画。我想找到一个简短的解决方案,它只使用Canvas上的绘图和纯Javascript。求助 最佳答案 我会使用在线工具生成的加载GIF,例如Ajaxload.info或Preloaders.net并将它放在一个div标记中,您可以在Canvas元素前面切换该标记。有关更多微调器生成器脚本,请参阅5OnlineLoadingAJAXSpinnerGeneratorTools.希望对您有所帮助! 关于javascript-HTML5canvas中的简单加载动画,

javascript - 在不模糊的情况下调整 Canvas 图像的大小

我有一张小图片,正在Canvas上渲染,如下所示:ctx.drawImage(img,0,0,img.width*2,img.height*2);我希望这能显示清晰的放大图像(每个图像像素有4个相同的像素)。但是,此代码(在Mac上的Chrome29中)会产生模糊的图像。在Photoshop术语中,它看起来像是在使用“双三次”重采样,而不是“最近邻”。在它有用的情况下(例如复古游戏),是否可以生成清晰的放大图像,或者我是否需要为服务器上的每个图像尺寸创建一个单独的图像文件? 最佳答案 简单地关闭Canvas的图像抗锯齿-不幸的是这个

javascript - 使用键盘控制在 Canvas 游戏中平滑 Angular 色移动

我正在使用canvas和JavaScript创建横向卷轴无尽太空主题游戏。我只是通过使用向上和向下箭头来控制一艘宇宙飞船,我想实现某种运动缓动,这样当我松开按键时,飞船就不会停止不动。我环顾四周,没有发现任何东西,而且我自己的尝试也没有奏效。这是我试过的。Jet.prototype.checkDirection=function(){if(this.isUpKey){this.drawY-=this.speed;if(this.speed=0){this.drawY-=this.speed;this.speed-=1;}}}if(!this.isDownKey){if(!this.is