本篇內(nèi)容介紹了“怎么用HTML5 Canvas實(shí)現(xiàn)玫瑰曲線和心形圖案”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
10年積累的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有包河免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
效果圖:
提示:把代碼復(fù)制到一個(gè)html文件中并保存,直接打開即可看到效果。
實(shí)現(xiàn)代碼:
<!DOCTYPE html> <html> <head> <meta charset = "gbk"> <title>HTML5 Demo</title> <style type="text/css"> #apDiv1 { position:absolute; width:120px; height:300px; z-index:1; left: 840px; top: 80px; } </style> </head> <body> <canvas id="canvas" width="800" height="600" style="border:1px solid #c3c3c3;"> Your browser does not support the canvas element. </canvas> <div id="apDiv1"> <form> 玫瑰曲線方程:<br> r=a+bsin(m/n*x)<br><br> 選擇參數(shù):<br><br> m: <input type="number" name="m" min="2" max="29" value="29"/><br><br> n: <input type="number" name="n" min="1" max="12" value="11"/><br><br> a: <input type="number" name="a" min="0" max="5" value="1"/><br><br> b: <input type="number" name="b" min="1" max="7" value="5"/><br><br> <input type="button" value=" 畫 圖 " onClick="draw();"><br><br> <hr><br> <input type="button" value=" 畫 圖 2 " onClick="draw2();"><br><br> <hr><br> <input type="button" value=" 心形圖 " onClick="draw3();"><br> </form> </div> <script type="text/javascript"> function draw() { var ctx = document.getElementById('canvas').getContext('2d'); ctx.save(); ctx.translate(400,300); ctx.clearRect(-400,-300,800,600); ctx.strokeStyle = "#cc0000"; var a = 0, b = 1, m = 6, n = 1; m = document.forms[0].m.value; n = document.forms[0].n.value; a = document.forms[0].a.value; b = document.forms[0].b.value; drawRose(ctx,a,b,m,n); ctx.restore(); } function drawRose(ctx,a,b,m,n){ ctx.beginPath(); var e = 0, c = 120; var k = 2 * Math.PI / 360; do { var r = a/b + Math.sin( m * e / n * k); r = r * c; var x = r * Math.cos( e * k ); var y = r * Math.sin( e * k ); e += 0.1; ctx.lineTo(x,y); } while ( e <= 4320 ); ctx.stroke(); } function draw2(){ var ctx = document.getElementById('canvas').getContext('2d'); ctx.save(); ctx.translate(400,300); ctx.clearRect(-400,-300,800,600); ctx.strokeStyle = "#cc0000"; ctx.beginPath(); //ctx.moveTo(0,0); var e = 0, c = 150; var k = 2 * Math.PI / 360; do { x = 150*Math.cos( 5/2 * e*k ) + 50*Math.cos( 15/16 * 5/2 * e*k ); y = 150*Math.sin( 5/2 * e*k ) - 50*Math.sin( 15/16 * 5/2 * e*k ); e += 0.1; ctx.lineTo(x,y); } while ( e <= 3600 ); ctx.stroke(); ctx.restore(); } function draw3(){ var ctx = document.getElementById('canvas').getContext('2d'); ctx.save(); ctx.translate(400,300); ctx.clearRect(-400,-300,800,600); ctx.strokeStyle = "#ff0000"; ctx.beginPath(); var x = 1, y; do { y = -80*(Math.sqrt(1-x*x) + Math.pow(x*x,1/3)); x -= 0.001; ctx.lineTo(100*x,y); } while ( x >= -1 ); do { y = 80*(Math.sqrt(1-x*x) - Math.pow(x*x,1/3)); x += 0.001; ctx.lineTo(100*x,y); } while ( x <= 1 ); ctx.closePath(); var grad = ctx.createRadialGradient(-40,-60,10,-40,-40,200); grad.addColorStop(0, "#ffcc00"); grad.addColorStop(1, "#ff0000"); ctx.fillStyle = grad; ctx.fill(); // ctx.stroke(); ctx.restore(); } window.onload = function (){ draw(); } </script> </body> </html>
“怎么用HTML5 Canvas實(shí)現(xiàn)玫瑰曲線和心形圖案”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
當(dāng)前標(biāo)題:怎么用HTML5Canvas實(shí)現(xiàn)玫瑰曲線和心形圖案
鏈接地址:http://aaarwkj.com/article12/gippdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、、靜態(tài)網(wǎng)站、虛擬主機(jī)、網(wǎng)站排名、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)