javascript - 在 Canvas (HTML5) 上绘制好看的(如在 Flash 中)线条 - 可能吗?

标签 javascript html canvas drawing

有没有什么方法可以像 Flash 那样使用 javascript 和具有“更好”抗锯齿功能的 Canvas 绘制线条?

我知道 Math.floor(coord)+0.5 技巧可以在您需要时获得精确的 1 像素线,但这不是我的意思。以下使用 canvas 绘制的蓝线在支持 html5 和 cavas 的所有浏览器中看起来_丑陋,因此它们可能使用相同的糟糕抗锯齿算法(可能是为了速度而编码,而不是为了最好的视觉印象)。不管线宽是多少都是一样的(其实是越粗越丑):

1px 蓝线截图裁剪:

alt text

和 3px:

alt text

如您所见,这不是绘制好的抗锯齿线的最漂亮的方法,只有下面的线看起来不错。客户要求我开发的图形处理应用程序必须“看起来不错”并且从美学 Angular 来看要求很高,我可能会放弃 HTML5/Canvas 解决方案并采用 Flash 方式如果我不能解决这个问题。或者也许我可以在 javascript 中编写一个好的抗锯齿线条绘制算法(任何人都可以给我一些资源吗?)很抱歉没有添加在 Flash 中绘制线条的图片,但关键是它们看起来不错,抗锯齿是 < em>做对了。

最佳答案

除了使用 2D 绘图 API,您还可以使用 SVG 矢量元素。你必须实现自己的 api 才能做到这一点,但那样你会得到漂亮的线条,就像 flash 中的那样。 SVG-edit是您可以在浏览器中使用 SVN 执行的操作的示例。

关于javascript - 在 Canvas (HTML5) 上绘制好看的(如在 Flash 中)线条 - 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4179069/

相关文章:

javascript - 如何在窗口调整大小时使用 jquery 水平居中相对 div?

javascript - 如何在 Vue.js 中调整文本字段 react 性

javascript - 将 AngularJS 添加到现有的 node-express-mysql 应用程序

javascript - 父div之外的类的Jquery最接近方法

opencv - 使用opencv4nodejs将canvas ImageData(Uint8ClampedArray)转换为openCV矩阵(BRG或灰色)

javascript - 在窗口调整大小时更新 Canvas 动画宽度

html - 使用 Canvas 和 svg 导出或捕获 div

javascript - 从 JavaScript 中的 Base64 代码获取图像宽度和高度

javascript - 单选按钮在 Internet Explorer 中不起作用,但在 Firefox 中可以正常工作

c# - 在 WebClient 中接受 Cookies?