返回介绍

Arrow 箭头

发布于 2024-07-31 23:46:24 字数 2649 浏览 0 评论 0 收藏 0

箭头 MxDbArrow

我们可以通过实例化一个 Mx.MxDbArrow() 对象创建一个箭头。

点击 Mx.MxDbArrow API 查看详细属性和方法说明。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>MxDbCircleShape 示例</title>
    <script src="https://unpkg.com/mxdraw/dist/mxdraw.umd.js"></script>
</head>
<script type="module">
    Mx.loadCoreCode().then(async () => {
        // 创建控件对象
        Mx.MxFun.createMxObject({
            canvasId: "mxdraw", // canvas元素的id
        });
    })
    //绘制箭头函数
    async function draw_arrow() {
        const lines = new Mx.MxDbArrow()
        const mxDraw = Mx.MxFun.getCurrentDraw();
        const getPoint = new Mx.MrxDbgUiPrPoint();
        lines.setLineWidth(10)
        const startPt = await getPoint.go()
        if (!startPt) return
        lines.innerOffset = getScreenPixel(10)
        lines.outerOffset = getScreenPixel(22)
        lines.topOffset = getScreenPixel(36)
        lines.startPoint = startPt
        getPoint.setUserDraw((currentPoint, worldDraw) => {
            lines.endPoint = currentPoint;
            worldDraw.drawCustomEntity(lines)
        })
        const endPt = await getPoint.go()
        lines.endPoint = endPt
        mxDraw.addMxEntity(lines)
    }
    /** 接受一个屏幕像素返回一个根据three.js坐标系计算出的实际屏幕像素
     * @param pixel 屏幕像素
     * @param isFontSize 计算字体大小时传入true
     * */
    function getScreenPixel(pixel, isFontSize) {
        let _pixel = Mx.MxFun.screenCoordLong2World(isFontSize ? pixel : pixel - pixel / 3)
        _pixel = Mx.MxFun.worldCoordLong2Doc(_pixel)
        return _pixel
    }
    // 绑定按钮click事件
    document.getElementById('btn').addEventListener('click', () => draw_arrow())
</script>

<body>
    <div>
        <button id="btn">绘制箭头</button>
    </div>
    <div style="height: 80vh; overflow: hidden;">
        <canvas id="mxdraw"></canvas>
    </div>
</body>

</html>

效果:

  • 点击绘制箭头按钮,执行绘制函数开始绘制
  • 点击画布确定箭头的起始点
  • 移动鼠标点击画布确定箭头的结束点并成功绘制箭头

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文