DDR爱好者之家 Design By 杰米
下面一段代码给大家分享JavaScript 动态三角函数,具体代码如下所述:
<html> <head> <meta charset="utf8" /> <title>三角函数图形</title> <style type="text/css"> body { background-color:black; } #canvas { position:absolute; top:50%; left:50%; margin:-151px 0 0 -401px; border:1px dashed #171717; } </style> </head> <body> <canvas id="canvas" width="800px" height="300px">您的浏览器不支持canvas</canvas> <script type="text/javascript"> //判断是否支持canvaas function isSupportCanvas(canvas) { return !!(canvas.getContext && canvas.getContext("2d")); } //requestAnimationFrame会自动使用最优的帧率进行渲染 function setupRAF() { var lastTime = 0; //兼容各个浏览器,Internet Explorer11、Google Chrome(Microsoft Edge)、Mozilla Firefox、Opera var vendors = ["ms", "moz", "webkit", "o"]; for(var i=0; i<vendors.length; i++) { window.requestAnimationFrame = window[vendors[i] + "RequestAnimationFrame"]; window.cancelAnimationFrame = window[vendors[i] + "CancelAnimationFrame"] || window[vendors[i] + "CancelRequestAnimationFrame"]; //测试浏览器支持哪一张 if(window.requestAnimationFrame) { console.log(vendors[i] + "requestAnimationFrame"); } if(window[vendors[i] + "CancelAnimationFrame"]) { console.log(vendors[i] + "CancelAnimationFrame"); } if(window[vendors[i] + "CancelRequestAnimationFrame"]) { console.log(vendors[i] + "CancelRequestAnimationFrame"); } } //回退机制 if(!window.requestAnimationFrame) { window.requestAnimationFrame = function(callback, element) { var currentTime = new Date().getTime(); var timeToCall = Math.max(0, 16-(currentTime-lastTime)); var callTime = currentTime + timeToCall; var id = window.setTimeout(function() { callback(callTime); }, timeToCall); lastTime = callTime; return id; }; } //回退机制 if(!window.cancelAnimationFrame) { window.cancelAnimationFrame = function(id) { clearTimeout(id); } } } var CanvasController = function(canvas) { var ctx = canvas.getContext("2d"); ctx.lineWidth = 1; ctx.textAlign = "left"; ctx.textBaseline = "middle"; ctx.font = "bold 18pt Calibri"; var i = 0; var step = 1; var unitX = 90 var unitY = canvas.height * 0.3; function update() { i += step; i %= 360; } //渲染坐标 function rendeRcoordinate() { ctx.strokeStyle = "white"; ctx.beginPath(); var topUnit = 0.5 * canvas.height - unitY; var bottomUnit = 0.5 * canvas.height + unitY; ctx.moveTo(0, topUnit); ctx.lineTo(canvas.width, topUnit); ctx.moveTo(0, bottomUnit); ctx.lineTo(canvas.width, bottomUnit); ctx.stroke(); } //渲染三角函数 function render(trigonometricFunction, color) { ctx.strokeStyle = color; ctx.beginPath(); var isInRange = false; for(var x=0; x < canvas.width; x++) { var a = (x + i) / 180 * Math.PI; var y = trigonometricFunction(a); //tan值有可能是无穷大或无穷小 if(isFinite(y)) { y = y * unitY + 0.5 * canvas.height; if(isInRange) { if(y < 0 || y > canvas.height) { isInRange = false; } else { ctx.lineTo(x, y); } } else { isInRange = true; ctx.moveTo(x, y); } if(x == 0) { ctx.fillStyle = color; var funcName = trigonometricFunction.toString(); var reg = /function\s*(\w*)/i; var matches = reg.exec(funcName); ctx.fillText(matches[1], 0, y); } } else { isInRange = false; } } ctx.stroke(); } this.init = function() { function loop() { requestAnimationFrame(loop, canvas); ctx.clearRect(0, 0, canvas.width, canvas.height); update(); rendeRcoordinate(); render(Math.sin, "red"); render(Math.cos, "green"); render(Math.tan, "blue"); } loop(); } } function init() { var canvas = document.getElementById("canvas"); if(!isSupportCanvas(canvas)) { return; } setupRAF(); var canvasController = new CanvasController(canvas); canvasController.init(); } init(); </script> </body> </html> </html>
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年11月28日
2024年11月28日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]