zoukankan      html  css  js  c++  java
  • JS实现类似CAD的获取点

    JS通过async/await、Promise相结合的方式等待获取点。

    async drawLine() {
        let sp = await this.getPoint({
    	msg: "指定第一个点:"
        });
        let ep = await this.getPoint({
    	msg: "指定下一点:"
        });
        var line = window.svg.shape.Line.prototype.createLine(sp.userPt, ep.userPt);
        if (line) {
    	var layer = window.svg.diagramManager.getLayer("0");
    	layer.appendChild(line);
        }
    }
    

    上面代码实现了画线的过程,用了两次await来获取起点和终点,其中createLine和getLayer函数,用到了本人的网页CAD框架,可以用其它方式替代。

    那么getPoint怎么实现呢?

    async getPoint(resolve) {
        resolve = resolve || {};
        return new Promise((resolve, reject) => {
            this.promiseResolve = resolve
        });
    }

    这里用到了Promise,等待鼠标点击时处理resolve。

    鼠标点击的事件

    async onMouseDown(e) {
        return this.promiseResolve(e);
    }

    这样就触发了resolve回调,实现了获取点。

    注:这里没有对错误、异常等情况进行处理。

  • 相关阅读:
    完全数
    100c之29:求具有abcd= ( ab + cd )^2 性质的四位数
    完全数
    100c之22:计算车速
    100c之21:4位反序数
    100c之28:回文数
    AJAX
    网站运营十条定律 刚刚好
    QQ也流氓了 刚刚好
    服务器变肉鸡了 刚刚好
  • 原文地址:https://www.cnblogs.com/ztcad/p/15602094.html
Copyright © 2011-2022 走看看