レンダリング: ヒント: コードを HTML ファイルにコピーし、直接開いて効果を確認します。 実装コード: コードをコピー コードは次のとおりです: <頭> <メタ文字セット = "gbk"> HTML5 デモ <br> #apDiv1 {<br> 位置:絶対;<br> 幅:120px;<br> 高さ:300px;<br> z-index:1;<br> 左: 840px;<br> 上: 80px;<br> }<br> お使いのブラウザは 要素をサポートしていません。 <フォーム> ローズ曲線方程式: r=a bsin(m/n*x) パラメータを選択します: m: n: a: b: <スクリプトタイプ="text/javascript"> 関数draw() { var ctx = document.getElementById('canvas').getContext('2d'); ctx.save(); ctx.translate(400,300); ctx.clearRect(-400,-300,800,600); ctx.ストロークスタイル = "#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 ドローローズ(ctx,a,b,m,n); ctx.restore(); } 関数drawRose(ctx,a,b,m,n){ ctx.beginPath(); var e = 0、c = 120; var k = 2 * Math.PI / 360; する { 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 関数draw2(){ var ctx = document.getElementById('canvas').getContext('2d'); ctx.save(); ctx.translate(400,300); ctx.clearRect(-400,-300,800,600); ctx.ストロークスタイル = "#cc0000" ctx.beginPath(); //ctx.moveTo(0,0); var e = 0、c = 150; var k = 2 * Math.PI / 360; する { 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 } 関数draw3(){ var ctx = document.getElementById('canvas').getContext('2d'); ctx.save(); ctx.translate(400,300); ctx.clearRect(-400,-300,800,600); ctx.ストロークスタイル = "#ff0000"; ctx.beginPath(); var x = 1, y; する { y = -80*(Math.sqrt(1-x*x) Math.pow(x*x,1/3)); x -= 0.001; ctx.lineTo(100*x,y); while ( x >= -1 ); する { y = 80*(Math.sqrt(1-x*x) - Math.pow(x*x,1/3)); x = 0.001; ctx.lineTo(100*x,y); } while ( x 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.ストローク(); ctx.restore(); } window.onload = function (){ 描画(); }