zoukankan      html  css  js  c++  java
  • canvas_08 自定义图形

    <template>
        <view class="zcvs">
    
            <view class="zcvs-item">
                <view>07_自定义图形</view>
                <view>
                    <canvas class="zcvs-cvs" canvas-id="cvs" id="cvs" />
                </view>
            </view>
    
        </view>
    </template>
    
    <script>
        export default {
            data() {
                return {
    
                };
            },
            onReady() {
                this.drawCvs();
            },
            methods: {
                drawCvs() {
                    const ctx = uni.createCanvasContext('cvs');
                    ctx.setLineWidth(3);
                    ctx.setStrokeStyle("#007AFF");
                    ctx.setFillStyle("#DD524D");
    
                    let centerX = 150;
                    let centerY = 150;
                    let radius = 80;
                    let x1, y1;
                    let angle = 0;
    
                    ctx.beginPath();
                    // 做个辅助线 画6瓣形
                    for (let i = 0; i < 6; i++) {
                        // 角度转弧度 = 角度 / 180 * Math.PI
                        x1 = centerX + radius * Math.cos(angle * Math.PI / 180);
                        y1 = centerY + radius * Math.sin(angle * Math.PI / 180);
                        console.log(x1, y1);
                        // 230 150, 190 219, 110,219, 70 150, 110 81, 190 81
                        ctx.moveTo(centerX, centerY);
                        ctx.lineTo(x1, y1);
                        angle += 60;
                    }
                    ctx.stroke();
    
                    // 画花瓣
                    ctx.beginPath()
                    ctx.setStrokeStyle("#4CD964");
                    ctx.moveTo(230, 150);
                    ctx.bezierCurveTo(230, 200, 250, 190, 190, 219);
                    ctx.bezierCurveTo(130, 250, 150, 230, 110, 219);
                    ctx.bezierCurveTo(80, 200, 50, 230, 70, 150);
                    ctx.bezierCurveTo(70, 130, 40, 100, 110, 81);
                    ctx.bezierCurveTo(130, 50, 150, 30, 190, 81);
                    ctx.bezierCurveTo(230, 91, 250, 100, 230, 150);
                    ctx.stroke();
    
                    ctx.draw();
                },
            }
        }
    </script>
    
    <style lang="scss" scoped>
        .zcvs {
    
            .zcvs-item {
                margin-bottom: 20px;
            }
    
            .zcvs-cvs {
                border: 1px solid #eee;
                height: 300px;
                 100%;
                box-sizing: border-box;
            }
        }
    </style>
  • 相关阅读:
    Android 表格布局
    Python 字符串操作分类
    设置Safari禁止访问某个网站
    java判断路径是文件夹还是文件
    java上下分页窗口流动布局
    Python获取网页html代码
    一次失败的java Box居中尝试
    装饰器进阶和迭代器
    函数对象补充,包函数与装饰器
    函数对象和名称空间
  • 原文地址:https://www.cnblogs.com/luwei0915/p/15252643.html
Copyright © 2011-2022 走看看