canvas之操场(椭圆)

编程入门 行业动态 更新时间:2024-10-22 20:30:28

canvas之操场(<a href=https://www.elefans.com/category/jswz/34/1755459.html style=椭圆)"/>

canvas之操场(椭圆)

 如图,要做一个操场形状的图形,由左半圆,右半圆,上下两条直线组成;

 

        //画整圆completeCircleFun(x0, y0, r0, y1, y2, x1, y3, c) {//左半圆this.leftCircleFun(x0, y0, r0, c);//上直线this.topLineFun(x0, y1, y2, c);// //右半圆this.rightCircleFun(x1, y0, r0, c);// //下直线this.bottomLineFun(y2, y3, x0, c);},//每个部分的函数()需要判断是否需要断点)//左半圆leftCircleFun(x0, y0, r0, c) {// console.log(c)if (c.indexOf("A3") != -1) {//this.ctx.beginPath();this.ctx.setLineDash([3, 10]);this.ctx.arc(x0, y0, r0, Math.PI / 2, (Math.PI * 3) / 2);this.ctx.strokeStyle = "#FFE922";this.ctx.lineWidth = 1;this.ctx.stroke();} else {this.ctx.beginPath();this.ctx.setLineDash([]);this.ctx.arc(x0, y0, r0, Math.PI / 2, (Math.PI * 3) / 2);this.ctx.strokeStyle = "#FFE922";this.ctx.lineWidth = 1;this.ctx.stroke();}},//上直线topLineFun(x0, y1, y2, c) {if (c.indexOf("A2") != -1) {//this.ctx.beginPath();this.ctx.setLineDash([3, 10]);this.ctx.moveTo(x0, y1); //设置起点状态this.ctx.lineTo(y2, y1); //设置末端状态this.ctx.lineWidth = 1; //设置线宽状态this.ctx.strokeStyle = "#FFE922"; //设置线的颜色状态this.ctx.stroke();} else {this.ctx.beginPath();this.ctx.setLineDash([]);this.ctx.moveTo(x0, y1); //设置起点状态this.ctx.lineTo(y2, y1); //设置末端状态this.ctx.lineWidth = 1; //设置线宽状态this.ctx.strokeStyle = "#FFE922"; //设置线的颜色状态this.ctx.stroke();}},//右半圆rightCircleFun(x1, y0, r0, c) {if (c.indexOf("A1") != -1) {//// console.log("存在");this.ctx.beginPath();this.ctx.setLineDash([3, 10]);this.ctx.arc(x1, y0, r0, (Math.PI * 3) / 2, Math.PI / 2);this.ctx.strokeStyle = "#FFE922";this.ctx.lineWidth = 1;this.ctx.stroke();} else {// console.log("不存在");this.ctx.setLineDash([]);this.ctx.beginPath();this.ctx.arc(x1, y0, r0, (Math.PI * 3) / 2, Math.PI / 2);this.ctx.strokeStyle = "#FFE922";this.ctx.lineWidth = 1;this.ctx.stroke();}},//下直线bottomLineFun(y2, y3, x0, c) {// if (c.indexOf("D") != -1) {//     ////     this.ctx.beginPath();//     this.ctx.setLineDash([5,10]);//     this.ctx.moveTo(y2, y3); //设置起点状态//     this.ctx.lineTo(x0, y3); //设置末端状态//     this.ctx.lineWidth = 1; //设置线宽状态//     this.ctx.strokeStyle = "#FFE922"; //设置线的颜色状态//     this.ctx.stroke();// } else {this.ctx.setLineDash([]);this.ctx.beginPath();this.ctx.moveTo(y2, y3); //设置起点状态this.ctx.lineTo(x0, y3); //设置末端状态this.ctx.lineWidth = 1; //设置线宽状态this.ctx.strokeStyle = "#FFE922"; //设置线的颜色状态this.ctx.stroke();// }}

说明:当实线和虚线相接,虚线设置用ctx.setlineDash;

当上一段是虚线,下一段想用实线,需要先清除虚线设置ctx.setlineDash([]);清空

更多推荐

canvas之操场(椭圆)

本文发布于:2024-02-25 15:31:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699442.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:椭圆   操场   canvas

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!