画虚线

2020-06-24  本文已影响0人  沉麟

毕业之后才发现,数学都还给数学老师了。就连三角函数都忘了。请教大佬手把手教我老半天终于会画虚线了!
做一下笔记,说不定还能帮一下别人,不用磕磕碰碰问东问西了,少走一些弯路。
正题:

//已知两个点,画一条虚线
            // this.sp = new Laya.Sprite();
            // this.addChild(this.sp);
            let p_1 = new Laya.Point(0, 0);//起始点
            let p_2 = new Laya.Point(0, 0);//终点
            p_1.x = this.line.x;
            p_1.y = this.line.y;
            p_2.x = this.aim.x;
            p_2.y = this.aim.y;
            // step1:两点之间的距离
            let len = p_1.distance(p_2.x, p_2.y);
            // //40-- -> 每个线段长40
            if (len > 80) {
                let arr = [];//中间点的数据
                let sum = Math.floor(len / 40);//总共分几段
                //step2:获取线段上的点
                for (let i = 1; i < sum; i++) {
                    let x = p_1.x + i * 40 * (p_2.x - p_1.x) / len;//cos--->(p_2.x - p_1.x) / len
                    let y = p_1.y + i * 40 * (p_2.y - p_1.y) / len;//sin--->(p_2.y - p_1.y) / len
                    arr.push(new Laya.Point(x, y));
                }

                //step3:隔一段绘制一段,这里担心数组越界,就取了总长度减1
                for (let i = 0; i < arr.length - 1; i += 2) {
                    this.sp.graphics.drawLine(arr[i].x, arr[i].y, arr[i + 1].x, arr[i + 1].y, "#FFFFFF", 20);
                }
            }
上一篇下一篇

猜你喜欢

热点阅读