草庐IT

canvas2d

全部标签

javascript - 如何在给定用户输入 X、Y 点的情况下绘制 HTML5 Canvas 线?

我正在尝试在Canvas中构建平面图模型。目前,我的Canvas中有一个网格图像,用户可以通过单击和拖动鼠标来绘制线条。但是,这并不能保证直线。我是否可以在html页面中提供输入字段供用户输入线条的开始和结束x和y坐标,并在我的Canvas代码中更新它?我是JS/AJAX的初学者,因此非常感谢任何补救帮助:)现在,这是规定如何绘制线条的部分:$(document).ready(function(){varcanvas=document.getElementById('canvas');varcontext=canvas.getContext("2d");if(canvas.getCon

HTML5 Canvas : How to know the limit for the size?

我有一个宽1400像素、长约12000像素的Canvas。我有一个需要绘制的层次结构图。当它完全展开时,它会占据整个Canvas(我设置的大小)。现在,当我从笔记本电脑(在各种浏览器上)访问该页面时,这一切正常。但是当我从iPad上的Safari访问它时,Canvas不显示,或者Canvas上的内容不可见。我认为,这是由于Canvas尺寸较大所致。因此,似乎存在内存可用性或设备依赖性,这限制了大小(根据W3C允许的大小)。如何知道或计算尺寸?或者有一些解决方法吗?还有其他办法吗?我是初学者。 最佳答案 替代方法(回答thecomme

javascript - A* 在 HTML5 Canvas 中开始寻路

我正在尝试在我的游戏(使用JavaScript、HTML5Canvas编写)中实现A*Start路径查找。A*Start的库找到了这个-http://46dogs.blogspot.com/2009/10/star-pathroute-finding-javascript-code.html现在我正在使用这个库来寻找路径。对于这个库,我正在尝试编写一个简单的测试,但遇到了一个问题。我现在完成了在HTML5Canvas屏幕中单击鼠标显示路径直到我的mouse.x和mouse.y。这是一个屏幕截图:(粉色方block:玩家,橙色方block:直到我的mouse.x/mouse.y的路径)编

jquery - 动画渐进绘制的虚线 HTML5 Canvas & Jquery

我如何修改以下代码,使绘制的线为虚线,您可以在提供的jfiddle中看到它的实际效果。#canvas{border-style:solid;border-width:1px;}Hoveroverme$(function(){animateLine=function(canvas,hoverDivName,colorNumber,pathString){$('#'+hoverDivName).hover(function(){varline=canvas.path(pathString).attr({stroke:colorNumber});varlength=line.getTotal

html - 如何在 HTML5 的 Canvas 中部分绘制路径?

假设我使用一系列bezierCurveTo()调用创建了弯曲路径。我想让它在动画中逐渐出现,方法是增加逐帧绘制的百分比。问题是我找不到仅绘制Canvas路径的一部分的标准方法-有人知道实现此目的的好方法(甚至是棘手的方法)吗? 最佳答案 当然……SimonPorritt为我们完成了所有艰巨的数学运算!jsBezier是一个带有函数的小型库:pointAlongCurveFrom(curve,location,distance)可以让您沿着贝塞尔曲线逐步绘制每个点。jsBezier在GitHub上可用:https://github.c

javascript - 如何将多个 Canvas 元素放入一个 Canvas 元素中?

我有多个由JavaScript创建的Canvas元素。我的问题是:“如何将多个Canvas元素放入一个Canvas元素?”。 最佳答案 给你;JSfiddle它将抓取每个Canvas并将它们制作成PNG访问缓冲区Canvas并将PNG叠加写入其中将缓冲区Canvas写回PNG并将其发送到IMG标签只要给#buffercanvas元素display:none;一切都会发生不可见的(检查这里;http://jsfiddle.net/Allendar/UqxCY/2/)。HTMLEmptyCSScanvas[id^=c],div[id=o

javascript - 视频中的 HTML5 Canvas drawImage 未在第一次绘制时显示

我有一个带有Canvas覆盖层的视频元素。然后我有一个绘图工具设置来绘制视频和一个保存按钮,它从视频和Canvas中执行drawImage以保存合成帧。但是,我第一次按“保存”时,我只从CanvasdrawImage获得结果,视频不显示。在随后的保存中,我收到了正确分层的两个图像。我认为这可能是加载视频图像的问题,但在我点击保存之前视频已完全加载,甚至可以推进帧并使其在第二次保存时正常工作。这是代码...SAVED:functionsave(){//COMPCANVASOVERVIDEOFRAMEvarvideo=document.getElementById("video");var

javascript - 在 html2canvas 中将透明颜色更改为白色

我正在使用javascript库html2canvas保存我的元素表。它工作正常,但是当我保存图像时,它显示PNG的透明背景色和jpeg的黑色背景色。这是我所做的:window.onload=function(){html2canvas(document.getElementById("tablePng"),{onrendered:function(canvas){varimg=canvas.toDataURL('image/jpeg');$('#saveTable').attr('href',img);}});};执行上述操作将保存图像,但背景颜色将为黑色,并且在更改varimg=c

javascript - 在 Canvas 上拖放 HTML5

我正在尝试在代表3个磁盘的Canvas上实现拖放操作。我想用鼠标改变每个质量的位置。我的主要问题是我受到这3个球体中每个球体的ax长度的限制。目前,当鼠标在Canvas内移动时,我实现了以下功能(indexMass的值表示移动了哪个质量:1、2或3和t1、t2、t3分别代表质量1,2,3的夹Angular)://HappenswhenthemouseismovinginsidethecanvasfunctionmyMove(event){if(isDrag){varx=event.offsetX;vary=event.offsetY;if(indexMass==1){//Updatet

javascript - Phonegap Cordova - 改变整个设备的分辨率(不是 Canvas )

我正在尝试更改应用的整体尺寸。它读取360x640。我的Canvas在DPI方面大了4倍,因此使用window.screen.width给我1440x2560。有一种方法可以使用window.screen.width来定义Canvas,但我正在尝试更改window.innerWidth&的值窗口.innderHeight.我面临的主要问题是,当我拖动一个元素时,它每触摸移动4像素移动1像素,因为应用程序本身的宽度是360,Canvas是1440,因此在设备上移动1像素,我的触摸移动每4像素.尽管我实现了60fps的拖动,但如果你仔细观察,它会给拖动带来一种block移动效果,而不是平滑