• html5画饼形图


    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm10.aspx.cs" Inherits="JQGridExercise.WebForm10" %>

    <!DOCTYPE html>
    <html>
    <head>
    <title>Canvas测试</title>
    <meta charset="gbk">
    <script>
    //绘制饼图
    function drawCircle(canvasId, data_arr, color_arr, text_arr) {
    var c = document.getElementById(canvasId);
    var ctx = c.getContext("2d");

    var radius = c.height / 2 - 20; //半径
    var ox = radius + 20, oy = radius + 20; //圆心

    var width = 30, height = 10; //图例宽和高
    var posX = ox * 2 + 20, posY = 30; //
    var textX = posX + width + 5, textY = posY + 10;

    var startAngle = 0; //起始弧度
    var endAngle = 0; //结束弧度
    for (var i = 0; i < data_arr.length; i++) {
    //绘制饼图
    endAngle = endAngle + data_arr[i] * Math.PI * 2; //结束弧度
    ctx.fillStyle = color_arr[i];
    ctx.beginPath();
    ctx.moveTo(ox, oy); //移动到到圆心
    ctx.arc(ox, oy, radius, startAngle, endAngle, false);
    ctx.closePath();
    ctx.fill();
    startAngle = endAngle; //设置起始弧度

    //绘制比例图及文字
    ctx.fillStyle = color_arr[i];
    ctx.fillRect(posX, posY + 20 * i, width, height);
    ctx.moveTo(posX, posY + 20 * i);
    ctx.font = 'bold 12px 微软雅黑'; //斜体 30像素 微软雅黑字体
    ctx.fillStyle = color_arr[i]; //"#000000";
    var percent = text_arr[i] + ":" + 100 * data_arr[i] + "%";
    ctx.fillText(percent, textX, textY + 20 * i);
    }
    }

    function init() {
    //绘制饼图
    //比例数据和颜色
    var data_arr = [0.35, 0.25, 0.4];
    var color_arr = ["#00FF21", "#FFAA00", "#FF4400"];
    var text_arr = ["第一季度", "第二季度", "第三季度"];

    drawCircle("canvas_circle", data_arr, color_arr, text_arr);
    }

    //页面加载时执行init()函数
    window.onload = init;
    </script>
    </head>
    <body>
    <h3>HTML5绘制饼图演示</h3>
    <p>
    <canvas id="canvas_circle" width="500" height="300" style="border:2px solid #0026ff;" >
    浏览器不支持canvas
    </canvas>
    </p>
    </body>
    </html>

  • 相关阅读:
    MTK Sensor越界导致的系统重启问题分析报告
    WebView兼容问题分析报告
    图片格式问题分析报告
    堆内存double free问题分析报告
    Virsualizer模块野指针问题分析报告
    libjohn hook问题分析报告
    [开发技巧]·Numpy广播机制的深入理解与应用
    [深度应用]·使用一维卷积神经网络处理时间序列数据
    [开发技巧]·Numpy中对axis的理解与应用
    [开发技巧]·HTML检测输入已完成自动填写下一个内容
  • 原文地址:https://www.cnblogs.com/honghong75042/p/4630034.html
Copyright © 2020-2023  润新知