javascript - 沿边缘在矩形外绘制 Canvas 文本

标签 javascript html canvas

我正在尝试沿着矩形编写每条边的描述。原因是描述矩形内外每条边的长度(alongside)。有什么办法可以实现吗?

var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
// Clip a rectangular area
ctx.rect(50, 20, 200, 120);
ctx.stroke();
ctx.clip();
// Draw red rectangle after clip()
ctx.fillStyle = "red";
ctx.fillRect(0, 0, 150, 100);

这应该在顶部边缘(外部)上方显示 200,在左侧边缘(外部)显示 150

最佳答案

使用@stealththeninja 的评论(指向这个答案 - text in html canvas )和这个 jsfiddle (对于文本旋转),我能够构建下面的代码。希望它符合您的规范。

附上结果截图。 html canvas text rotated

    var c = document.getElementById("myCanvas");
    var ctx = c.getContext("2d");

    const rectPosX = 50;
    const rectPosY = 50;
    const rectLength = 200;
    const rectHeight = 150;

    ctx.fillStyle = "red";
    ctx.fillRect(rectPosX, rectPosY, rectLength, rectHeight);

    ctx.fillStyle = "blue";
    ctx.fillText('200', rectPosX + rectLength / 2, rectPosY);
    ctx.fillText('150', rectPosX, rectPosY + rectHeight / 2);
    ctx.fillText('200', rectPosX  + rectLength / 2, rectPosY + rectHeight);

    ctx.save();
    ctx.translate(rectPosX + rectLength, rectPosY + rectHeight / 2);
    ctx.rotate(0.5*Math.PI);
    ctx.fillText('150', 0, 0);
    ctx.restore();
<canvas id="myCanvas" width="400" height="300"></canvas>

关于javascript - 沿边缘在矩形外绘制 Canvas 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56420578/

相关文章:

javascript - Circle to Circle 碰撞响应未按预期工作

javascript - 如何更改 Mapbox GL JS 中多边形工具上的悬停文本?

javascript - 渲染 vue.js 组件并传入数据

javascript - 按钮内的文件输入字段在 Firefox 中不起作用

javascript - 在 HTML5 canvas 中通过鼠标移动绘制半透明线条

javascript - HTML5 Canvas : counterclockwise arc with angle > 2 PI

javascript - 对象作为 React 子对象无效(发现 : [object Promise])

javascript - typescript "Property does not exists on type Element"

HTML 5 或 Objective-C 和 NativeSDK

html - Bootstrap 类 ="h-100"在 Firefox 中工作但在 Chrome 中不工作