1.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)
起点x.起点y,半径x,半径y,旋转的角度,起始角,结果角,顺时针还是逆时针
2.贝塞尔曲线实现 复杂且精度低
参考 canvas画椭圆的5种方法 https://blog.csdn.net/gaoxu520/article/details/58588020
css3提出widht的自适应属性值
1.width: fit-content; 表示宽度会缩小到内容宽度
2.width: fill-available; 表示撑满整个的可用空间,便于实现等高布局 height: fill-available;
3.width: max-content; 表示用内部元素的最大宽度来作为容器的宽度,例如 文字不换行
4.width: min-content; 表示用内部元素的最小宽度来作为容器的宽度,
思路:指定长度为length,循环length次,每次都从0-9a-zA-Z中产生一个随机数。
来源:https://www.cnblogs.com/kenshinobiy/p/4894792.html
<html> <head> <title>验证码</title> <style type="text/css"> #code { font-family: Arial; font-style: italic; font-weight: bold; border: 0; letter-spacing: 2px; color: blue; width: 60px; height: 24px; } </style> </head> <body onload="createCode()"> <div> <input type="text" id="input" /> <input type="button" id="code" onclick="createCode()" /> <input type="button" value="验证" onclick="validate()" /> </div> <script> //在全局定义验证码 var code; //产生验证码 function createCode() { code = ""; var codeLength = 5; //验证码的长度 var checkCode = document.getElementById("code"); var random = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); //随机数 for (var i = 0; i < codeLength; i++) { //循环操作 var index = Math.floor(Math.random() * 36); //取得随机数的索引(0~35) code += random[index]; //根据索引取得随机数加到code上 } checkCode.value = code; //把code值赋给验证码 } //校验验证码 function validate() { var inputCode = document.getElementById("input").value.toUpperCase(); //取得输入的验证码并转化为大写 if (inputCode.length <= 0) { //若输入的验证码长度为0 alert("请输入验证码!"); //则弹出请输入验证码 } else if (inputCode != code) { //若输入的验证码与产生的验证码不一致时 alert("验证码输入错误!@_@"); //则弹出验证码输入错误 createCode(); //刷新验证码 document.getElementById("input").value = ""; //清空文本框 } else { //输入正确时 alert("^-^"); //弹出^-^ } } </script> </body> </html>
Ping 的原理是 ICMP 协议,ICMP 的全称是 Intent Control Message Protocol, 中文过来就是 互联网控制报文协议;
参考文章 https://blog.csdn.net/zhangyexinaisurui/article/details/82939401