当前位置: 首页 > 知识库问答 >
问题:

如何用JavaScript在画布上绘制圆形矩形的下半部分

西门山
2023-03-14

我正在画布上使用二次曲线绘制大型圆角矩形,如下所示:

    var ctx = canvas.getContext('2d');
    ...
    ctx.moveTo(x, my);
    ctx.quadraticCurveTo(x, y, mx, y);
    ctx.quadraticCurveTo(x + w, y, x + w, my);
    ctx.quadraticCurveTo(x + w, y + h, mx, y + h);
    ctx.quadraticCurveTo(x, y + h, x, my);

我可以画一个完整的圆角矩形:http://jsfiddle.net/s9x3xn4z/

我可以画出圆角矩形的上半部分:http://jsfiddle.net/1oeduLqx/

但我不知道如何绘制圆角矩形的下半部分。

我的尝试都是这样结束的:http://jsfiddle.net/tfyagcew/

这绝对不是我想要的!

如何绘制圆角矩形的下半部分?

共有2个答案

谭绍晖
2023-03-14

很简单的答案:

ctx.moveTo(x, my);
ctx.quadraticCurveTo(x, y + h, mx, y + h);
ctx.quadraticCurveTo(x + w, y + h, x + w, my);
赫连开畅
2023-03-14

这只是上半部分的颠倒版本:

ctx.moveTo(x, y);
ctx.quadraticCurveTo(x, my, mx, my);
ctx.quadraticCurveTo(x + w, my, x + w, y);

第一个坐标对是控制点,第二个是目的地。中间点必须是(mx,my),最后一点是(x,w,y)

 类似资料:
  • 问题内容: 我发现只能填充矩形,而没有圆角,该怎么办? 问题答案: HTML5画布没有提供绘制带有圆角的矩形的方法。 如何使用和方法? 您也可以使用方法代替方法。

  • 实际上,我可以使用函数来完成。我从“HTML5画布-如何在图像背景上画一条线?”中得到的东西。但是我需要在不使用from函数的情况下绘制图像,如下所示:

  • 问题内容: 似乎没有绘制椭圆形形状的本机功能。我也不是在寻找蛋形。 是否可以绘制具有2个贝塞尔曲线的椭圆形?有人遇到过吗? 我的目的是画一些眼睛,实际上我只是使用弧线。提前致谢。 解 因此,scale()更改所有下一个形状的缩放比例。Save()之前保存设置,还原用于还原设置以绘制新形状而无需缩放。 感谢Jani 问题答案: 更新: 缩放方法可能会影响笔触宽度的外观 正确的缩放方法可以保持笔画宽度

  • 在HTML和JavaScript中,这应该是一个非常简单的任务。我有一个图标栏,目前有一个单一的可点击链接,新的框。在图标栏下面,我有一张画布。我的目标是在用户每次按下new Box按钮时,在画布上绘制一个新的矩形。 现在,我的图标栏和画布正确显示,我可以单击图标栏的“新建框”链接,但画布上没有出现矩形,尽管我已将其参数指定为:。 null null

  • 我的任务是在画布上绘制许多矩形,但所有矩形都有一个旋转角度,它们必须在画布上旋转。我在寻找这个问题的解决方案时遇到的许多建议都指出了绘制一个矩形并旋转画布的方法(canvas.rotate(angle)),但它会旋转所有画布,并且只能使用一个矩形。在画布上绘制许多旋转矩形的最佳方法是什么?我想画矩形(单色,带颜料),但不是位图,因为时间效率和内存。 目前我主要的方法是创建一堆画布,在每个画布上绘制

  • 本文向大家介绍js绘制圆形和矩形的方法,包括了js绘制圆形和矩形的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js绘制圆形和矩形的方法。分享给大家供大家参考。具体如下: 这里使用js来绘制圆形和矩形,支持选择图形的背景颜色,同时可设置圆角矩形、半径、正圆、矩形、正方形这几个选项。或许这些图形你不需要,但重要的是让你学会JavaScript绘制图形的方法,这是要表达的核心。 运行效果